linux – perf stat为每次运行提供不同数量的指令
发布时间:2020-12-13 18:58:08 所属栏目:Linux 来源:网络整理
导读:我对以下空程序运行了perf分析, #include 编译并运行perf stat ./a.out后,我得到了以下输出说明(以及其他数据,如周期数,任务时钟等): 418,869 instructions # 0.87 insns per cycle 在同一个精灵的每次perf分析期间,指令的数量都会发生变化. 我的实际需要是
我对以下空程序运行了perf分析,
编译并运行perf stat ./a.out后,我得到了以下输出说明(以及其他数据,如周期数,任务时钟等):
在同一个精灵的每次’perf’分析期间,指令的数量都会发生变化. 我的实际需要是找到我写的特定函数中的指令数.所以我将从新程序中的指令数减去上面的数字.(我可以计算在gcc中使用-S标签创建的program.s中的行数,但在查看perf行为后我感到困惑) 为什么说明的数量不一致,确切地说不一样? 更新 最佳答案
为了测量你的函数执行的指令数量,我建议在函数的进入和退出时使用perf_event_open()开始和停止事件计数,而不是在有和没有函数的情况下运行两次你的程序.
关于空程序执行的指令数的非确定性,您可能正在计算用户和内核域中的事件.我认为用户的土地数应该在两次运行之间保持不变,但对于内核部分,很多事情都发生在执行这个程序的场景后面,所以我猜非确定性来自于内核代码中发生的事情.要仅计算用户空间指令,您可以使用:
你能否提供有关差异的更多细节? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在双节点Linux上,iSCSI目标的故障转移有多好?
- 选择linux负载计算的权重如何?
- linux – 奇怪的CentOS服务器行为时区
- linux – 如何在驱动器处于“E”状态的Synology NAS上恢复m
- linux – 如何检查iptables中每条规则的命中数?
- linux – TRIM是否通过基于LVM的PV Xen domU传递到底层SSD
- 如何在Linux上的C/C++中使用ipv6 udp socket进行组播?
- linux – mercurial over ssh,没有来自远程hg的合适响应
- 是否有适用于Linux的SSTP(安全套接字隧道协议)服务器?
- Python中的自动重启系统