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