哪些工具可用于微基准测试?

哪些工具可用于微基准测试?

我不确定使用哪个工具对 C 程序进行微基准测试。

我想测量两者:

  • 内存使用情况,RSS(驻留集大小)
  • CPU周期

我确实使用perf record -gperf script通过管道传输到 awk 脚本中。这有助于查找内存使用情况,但 CPU 周期不准确,因为perf record通过采样获取 CPU 周期。perf stat是准确的,但显然没有给出每个功能的统计数据。 perf_event 库似乎有非常丰富的文档,对于简单的基准测试来说是一项艰巨的任务。

简要浏览了一下:

  • 系统点击
  • DTrace
  • LTTng
  • 性能工具
  • 利克维德
  • 帕皮伊

这看起来是不错的、有据可查的工具。

您建议最关注什么?或者还有其他建议吗?

感谢您的时间。

答案1

您正在编写自己的 C 代码,因此您只需调用getrusage() 获取您提到的统计数据。在感兴趣的基准测试代码之前和之后调用它。

系统调用有开销。您可能希望基准测试代码能够循环多次迭代以进行单次测量。如果多次运行相同的代码会产生高度可变的计时,则说明您的循环计数器设置得太低。

相关内容