用于使用 perf 工具测量挂钟时间的最佳事件计数器



简单但又复杂的问题:

使用什么计数器来获取性能工具来测量挂钟时间?

作为基线,我认为我需要测量的代码时的第一件事就是挂钟时间,以便初步了解代码花费大部分时间的地方。 我不在乎它是 IO 还是带宽限制或其他我只想知道它在哪里慢。

听起来很简单的要求,但是现代CPU为高效工作(如频率缩放等(所做的所有技巧以及perf中可用的大量不同(没有很好的文档(性能计数器,因此很难确定测量正确的东西。

目前我做:

perf record -g -e ref-cycles -F 999 -- <cmd>

我认为这是未缩放的 CPU 频率,因此与部分代码运行的挂钟时间成正比。但谁知道呢?

您可以使用task-clock.

这是进程运行时的明确挂钟时间,并且作为奖励是可移植的,因为它不依赖于任何 PMU 事件。

相关内容

  • 没有找到相关文章

最新更新