CPU性能測試基準(Dhrystone)學(xué)習
\classic_benchmarks\source_code\dhrystone2 \dhry.h --關(guān)于兼容性的原型定義 \dhry_1.c --主程序入口 \dhry_2.c --算法子程序 如果是移植到ARM Cortex-M平臺下裸系統運行,一般只需要簡(jiǎn)單修改dhry.h和dhry_1.c文件即可,Dhrystone本身并沒(méi)有太多移植工作,其源碼本是用作在PC上運行的,而在嵌入式系統里運行僅需要把一些文件I/O的相關(guān)代碼刪除即可,此外就是計時(shí)函數和打印函數的重實(shí)現。
MIPS: million instruction per second,表示每秒多少百萬(wàn)條指令,如 10MIPS , 表示每秒一千萬(wàn)條指令。 MIPS/MHz : 表示 CPU 在每 1MHz 的運行速度下可以執行多少個(gè)MIPS , 如 10MIPS/MHz,表示如果 CPU 運行在 1MHz 的頻率下,每秒可執行一千萬(wàn)條指令, 如果 CPU 運行在 5MHz 的頻率下,每秒可執行五千萬(wàn)條指令。 DMIPS: Dhrystone MIPS,并非字面上每秒百萬(wàn)條指令的意思。 它是一個(gè)測量CPU運行一個(gè)叫Dhrystone(整數運算)的測試程序時(shí)表現出來(lái)的 相對性能高低的一個(gè)單位(很多場(chǎng)合人們也習慣用MIPS作為這個(gè)性能指標的單位)。缺陷
它的代碼與具有代表性的實(shí)際程序代碼并不相同。
Dhrystone代碼量過(guò)小,在現代CPU中,它能夠被放進(jìn)指令緩存中,所以它并不能?chē)栏竦臏y量取指性能。
它易受編譯器影響。
舉例來(lái)說(shuō),在Dhrystone中有大量的字符串復制語(yǔ)句,用來(lái)測量字符串復制的性能。然而Dhrystone中字符串的長(cháng)度不變,并且均開(kāi)始于自然對齊的邊界,這兩點(diǎn)便與真實(shí)的程序不同。因此一個(gè)優(yōu)化性能好的編譯器能夠在去掉循環(huán)的情形下通過(guò)一連串字的移動(dòng)替代對字符串的復制,這將會(huì )塊很多,可能會(huì )高達30%。所以我們在編譯測試程序的時(shí)候,如果指定編譯器的優(yōu)化等級的話(huà),我們會(huì )發(fā)現在不同的優(yōu)化登記下,表現出來(lái)的性能指標會(huì )有差別,優(yōu)化等級越高,性能指標越好
源碼獲取*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。