如何获取线程的CPU指令数?

时间:2019-01-29 19:20:03

标签: c cpu-usage instructions

我知道getrusage()可以提供每个线程的CPU利用率,但是仅占用CPU时间。有什么方法可以获取已执行的CPU指令数量?还是花费在CPU上的周期数? 基本上,我需要找到线程在CPU上花费多少的可重复度量。有什么建议用C语言吗?

更新(回复评论):

  • 理想情况下,我需要以独立于平台的方式使用它,但是Linux将是最有用的。
  • 对于我来说,可重复性是最重要的,即使这意味着实际运行时间可能会略有不同。
  • 我知道vTune(并且已经使用过),但是我想在代码运行时以编程方式获取此信息。因此vTune以及Craig Estey链接的帖子中的建议都已发布。
  • 我确实看过{{3}},但没有发现任何有用的信息...

1 个答案:

答案 0 :(得分:2)

看看Google的细丝引擎。他们正是这样做的。 看他们的探查器。 https://github.com/google/filament/blob/master/libs/utils/src/Profiler.cpp 您也可以从此链接获取更多信息: https://www.youtube.com/watch?v=Lcq_fzet9Iw