我想使用Intel和AMD x86_64多核处理器附带的硬件性能计数器来计算程序退役商店的数量。我希望每个线程分别计算其退休商店。可以吗?如果是这样,在C / C ++中如何?
答案 0 :(得分:10)
如果要在内部计算程序某些部分的硬件事件(不启动任何第三方工具),则可以使用Perfctr或PAPI。
Perfctr quickstart:http://www.ale.csce.kyushu-u.ac.jp/~satoshi/how_to_use_perfctr.htm
PAPI主页:http://icl.cs.utk.edu/papi/
PerfSuite好文档:http://perfsuite.ncsa.illinois.edu/publications/LJ135/x27.html
如果您可以在外部执行此操作,则可以使用现代Linux的perf
命令。
答案 1 :(得分:3)
最好的方法是在linux中使用perf作为osgx提到的,因为它是linux内核的一部分。但它也可以在C / C ++代码中调用,并且不需要它是外部perf stat调用。
只需下载内核源代码并查看它。或者,或者通过google看看这个库:
http://perfmon2.sourceforge.net/docs_v4.html
它是perfmon2项目的一部分,但设计用于perf。看看perf_examples目录,你就会明白这个想法。这就是我在C代码中处理perf调用的方法。
答案 2 :(得分:2)
AMD的官方申请名为CodeAnalyst
答案 3 :(得分:0)
已检出oprofile
?