3
|
Michel Gokan Khan · 技术社区 · 7 年前 |
![]() |
1
3
它为您计算IPC;这通常比
第二
。
(如果不使用
但请参见
How to calculate MIPS using perf stat
有关的更多详细信息
有关在静态可执行文件中的微型基准循环上使用它的输出示例,请参阅 Can x86's MOV really be "free"? Why can't I reproduce this at all?
你的意思是从项目内部,只分析其中的一部分?有一个perf API,您可以在其中执行以下操作
或者你的意思是别的。
还有
英特尔x86 CPU至少有一个分支指令计数器,但除FP指令外,其他类型没有区别。这可能是大多数具有perf计数器的体系结构所共有的。
对于Intel CPU,有
ocperf.py
,的包装器
它不是用来告诉您正在运行什么指令的,您已经可以通过跟踪执行来告诉您了
。大多数指令都是完全管道化的,所以有趣的是哪些端口的压力最大。除法/sqrt单位是个例外:有一个计数器
相关:
linux perf: how to interpret and find hotspots
用于使用
相关:
对于精确的动态指令计数,如果您使用的是x86,则可以使用Intel引脚之类的检测工具 。 https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool 。
在最近的Intel CPU上,硬件支持记录条件/间接分支的运行方式,因此,假设没有自修改代码,并且您仍然可以读取任何JIT缓冲区,您可以准确地重建以何种顺序运行的指令。 Intel PT 。 对不起,我不知道AMD CPU上的等价物是什么。 |