测量英特尔SGX函数调用的CPU时间性能

时间:2019-01-30 13:16:08

标签: c++ valgrind intel sgx gperftools

我正在编写C ++客户端-服务器应用程序。服务器保存一个跳过列表,该列表存储一个键值对。我可以从客户端插入数据,请求将到达服务器,然后将执行跳过列表操作,例如插入,删除,查找。

客户端和服务器都将包含一个SGX飞地。我想测量服务器上的CPU时间。为此,我可以只计算从我在服务器上进行SGX enclave调用以进行跳过列表操作时开始的时间,到结束该enclave调用在服务器上返回的时间开始的CPU时间。该链接显示了如何计算经过的CPU时间Measuring CPU time in c++

我需要执行数百万个请求,为此,我将测量CPU时间,并希望对每个操作(即插入,删除和查找)取平均值。

你们能建议我以下哪种方法有效吗?

  1. 计算经过的CPU时间并打开一个文件 results.txt 并一次写入一行。然后手动取平均值? 或
  2. 使用配置文件工具?我还没有使用任何分析工具,所以不知道它是如何工作的。

其他几个相关问题:-

  1. 使用ctime的CPU时间计算不受PC上下文切换和其他资源的影响吗? AFAIK当我进行飞地呼叫时,将有一个硬件上下文切换。因此,试图通过将ctime语句放入不受信任的服务器层来获取经过的时间并没有帮助。正确吗?
  2. 是否有一个不错的工具来收集存储在 results.txt 文件中的数据并从中生成一个漂亮的图形?

0 个答案:

没有答案