我对以下空程序运行了perf分析,
#include dio.h>
int main() {
}
编译并运行perf stat ./a.out后,我得到了以下输出说明(以及其他数据,如周期数,任务时钟等):
418,869 instructions # 0.87 insns per cycle
在同一个精灵的每次’perf’分析期间,指令的数量都会发生变化.
我的实际需要是找到我写的特定函数中的指令数.所以我将从新程序中的指令数减去上面的数字.(我可以计算在gcc中使用-S标签创建的program.s中的行数,但在查看perf行为后我感到困惑)
为什么说明的数量不一致,确切地说不一样?
更新
我按照man page中给出的示例在C中使用perf_event_open()
最佳答案