<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > CPU性能測試基準(Dhrystone)學(xué)習

CPU性能測試基準(Dhrystone)學(xué)習

發(fā)布人:電子禪石 時(shí)間:2023-08-22 來(lái)源:工程師 發(fā)布文章
簡(jiǎn)介

Dhrystone是測量處理器運算能力的最常見(jiàn)基準程序之一,常用于處理器的整型運算性能的測量。程序是用C語(yǔ)言編寫(xiě)的,因此C編譯器的編譯效率對測試結果也有很大影響。

Dhrystone是由Reinhold P. Weicker在1984年提出來(lái)的一個(gè)基準測試程序,其主要目的是測試處理器的整數運算和邏輯運算的性能。Dhrystone首先用Ada語(yǔ)言發(fā)布,后來(lái)Rick Richardson為Unix開(kāi)發(fā)了用C語(yǔ)言編寫(xiě)的Version 1.1,這個(gè)版本也成功的推動(dòng)了Dhrystone的廣泛應用。
  Dhrystone標準的測試方法很簡(jiǎn)單,就是單位時(shí)間內跑了多少次Dhrystone程序,其指標單位為DMIPS/MHz。MIPS是Million Instructions Per Second的縮寫(xiě),每秒處理的百萬(wàn)級的機器語(yǔ)言指令數。DMIPS中的D是Dhrystone的縮寫(xiě),它表示了在Dhrystone標準的測試方法下的MIPS。
  關(guān)于DMIPS有一個(gè)不得不注意的點(diǎn),因為歷史原因我們把在VAX-11/780機器上的測試結果1757 Dhrystones/s定義為1 DMIPS,因此在其他平臺測試到的每秒Dhrystones數應除以1757,才是真正的DMIPS數值,故DMIPS其實(shí)表示的是一個(gè)相對值。

源碼獲取

核心程序下載 http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz 

核心程序包下載后,在\classic_benchmarks\source_code\dhrystone2\下可找到源代碼。詳細文件目錄如下:

\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)系工作人員刪除。



關(guān)鍵詞: Dhrystone

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>