【发布时间】:2014-12-06 08:57:36
【问题描述】:
我对以下空程序进行了性能分析,
#include <stdio.h>
int main() {
}
编译并运行 perf stat ./a.out 后,我得到以下输出(以及其他数据,如周期数、任务时钟等):
418,869 instructions # 0.87 insns per cycle
在同一精灵的每次“性能”分析期间,指令数量都会发生变化。
我的实际需要是找到我写的特定函数中的指令数。所以我将从新程序中的指令数中减去上述数字。(我可以计算在 gcc 中使用 -S 标签创建的 program.s 中的行数,但在查看 perf 行为后我很困惑)
为什么指令的数量不一致,确切地说是不一样?
更新 我按照man page 中给出的示例在 C 中使用 perf_event_open()
【问题讨论】:
标签: linux computer-architecture perf