我想知道在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