我想知道在Red Hat Enterprise Linux上运行的程序的特定运行过程中执行了多少个x86-64指令。我知道我可以从valgrind得到这些信息,但是放缓相当可观。我也知道我们使用的是内置硬件性能计数器的英特尔酷睿2四核CPU(型号Q6700),但我不知道有什么方法可以访问从C程序内执行的指令总数。如何计算在红帽企业Linux(x86-64)上执行的指令?
6
A
回答
2
Performance Application Programming Interface (PAPI)似乎是一起的,你在找什么线路。
从website:
PAPI旨在提供工具设计者和应用工程师以统一的界面和方法用在最重要的微处理器中发现的性能计数器的硬件。
Vince Weaver是田纳西大学创新计算实验室的博士后研究员,做了一些PAPI-related的工作。他在UTK的web page上列出的研究看起来可能会提供一些额外的信息。
2
libpapi是您正在寻找的图书馆。 AMD和英特尔芯片提供insn计数。
1
1
下面的程序访问循环计数器寄存器C(对不起,不可移植的代码,但与gcc工作正常)。这是用于计算周期的,这与指令不一样。现代处理器既可以在同一条指令上使用几个周期,也可以一次执行多条指令。周期通常更多地介入该指令的数量,但这取决于您的实际目的。
其他演出计数器当然可以以相同的方式访问(实际上我甚至不知道是否有其他演出计数器),但我将不得不寻找实际的指令代码来使用。
static __inline__ unsigned long long rdtsc(void)
{
unsigned long long int x;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));
return x;
}
相关问题
- 1. 如何在红帽企业Linux 3上构建git?
- 2. 如何在红帽企业Linux 6.2上安装LDAP.so
- 3. 红帽企业Linux 6组播饲料
- 4. 红帽企业5 Linux与Python 2.5
- 5. :红帽企业Linux服务器上的 “庆典找不到pybot命令”
- 6. 在红帽企业版Linux中安装JDK 1.6,JBoss 4.0和Postgresql
- 7. 的Maven 2.0.8或更高版本的红帽企业版Linux
- 8. 红帽企业Linux不再支持erlang吗?
- 9. 在红帽企业Linux服务器版本7.1(Maipo)中安装R
- 10. 如何缩短红帽linux的路径?
- 11. Linux的红帽内核头
- 12. 如何在红帽JBoss企业应用程序平台中部署定制jar
- 13. 如何计算在ARM程序中执行的指令数量?
- 14. 从UNIX/LINUX机器在Windows计算机上执行命令
- 15. 如何红帽Linux PPC64服务器
- 16. 红帽企业版5显示模式检测问题
- 17. 在Docker上运行jenkins来模拟红帽子linux
- 18. SAS企业指南计数如果
- 19. 如何计算执行时间(php指令'max_execution_time'?)
- 20. 使PHP与红帽子5上的httpd一起使用linux linux
- 21. 如何在远程计算机上执行命令?
- 22. Linux的红帽.bash_profile中不起作用
- 23. 如何在Linux命令行中计算SFV风格的CRC32?
- 24. 如何计算在keil c中执行指令所花费的时间c
- 25. 如何计算在汇编程序中执行的指令总数
- 26. 设置高可用性红帽企业虚拟化管理器(RHEV 3.5)
- 27. WAR在红帽Jetty上运行,但在Ubuntu上不运行
- 28. 如何使红帽系统
- 29. 如何在没有ssh的远程计算机(linux)上执行进程?
- 30. Ruby在Linux上执行Bash命令
只是想知道。你为什么想要执行一些指令?周期数看起来更加有意义,即添加速度缓慢的指令(比如内存访问)和快速寄存器绑定指令。 – kriss 2010-11-17 03:06:10
周期数包括停顿,例如等待从缓存传递的数据。所以它不同于跑步,而insns的数量保持不变 – horsh 2010-11-17 03:15:28
@kriss:什么说什么 - 我正在寻找一个稳定和可重复的数字。 – 2010-11-17 05:48:02