Intel C++ 9.0編譯器優(yōu)化效果測試_第1頁
Intel C++ 9.0編譯器優(yōu)化效果測試_第2頁
Intel C++ 9.0編譯器優(yōu)化效果測試_第3頁
Intel C++ 9.0編譯器優(yōu)化效果測試_第4頁
Intel C++ 9.0編譯器優(yōu)化效果測試_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Intel C+ 9.0編譯器優(yōu)化效果測試摘要本文主要針對Intel+9.0編譯器在Visual+6.0環(huán)境下對一些常用的功能性操作的優(yōu)化作用進展了測試驗證。主要從對采用編譯器前后的程序運行時間進展比擬來進展判斷。測試范圍主要集中于對線程的切換時間,轉異常以及異常恢復時間,高優(yōu)先級線程搶先時間以及信號量響應時間方面。此外,還對一些常用的數(shù)學函數(shù)的運行時間進展了測試比擬。得出的測試數(shù)據(jù)和結論能對采用此編譯器的用戶有一定的參考價值和借鑒作用。關鍵詞Intel+,Visual+,編譯器,優(yōu)化當今許多計算機應用領域,如天氣預報、信號處理以及軍事上的彈道跟蹤等,它們對程序處理速度的要求都是相當高的。否那

2、么就會導致結果出現(xiàn)偏向或者失去其意義。要進步程序的運算速度,一般通過以下幾個方面的改良措施來進展:1采用新的處理速度更快的硬件設備,如更快的PU,更大的內存,以及更快的I/設備等。但這顯然會導致本錢的大量增加,并非是一種合適于任何單位的實際的改良措施。2更加優(yōu)化的程序設計方法,如在程序中引入多線程、并行等處理方法。這是一種比擬有效的方法,當然對程序設計人員以及編程人員的程度有更高的要求。3采用一些優(yōu)化軟件,這也是一種簡便有效的方法。另外假如和其他兩種方法配合使用,對于一些要求大幅度進步處理速度的場合下,也將是非常有幫助的。采用優(yōu)化型編譯器就屬于上面介紹的第三種方法。處理器由于受數(shù)據(jù)相關、條件轉

3、移和資源沖突等原因,指令級并行度受到極大的限制。通過優(yōu)化編譯器對指令序列進展重組,以及采用軟件與硬件相結合的方法處理數(shù)據(jù)相關、條件轉移和資源沖突等,可以大大進步處理器的指令級并行度,使在一定時間內可發(fā)射盡可能多的指令數(shù)。另外,優(yōu)化編譯器還能根據(jù)處理器中先行指令窗口的大小,把沒有數(shù)據(jù)相關、控制相關和功能部件沖突,或者沖突和相關比擬少的指令調度到同一個先行指令窗口中,使這些指令超越它前面的指令先發(fā)射到操作部件中去,從而進步功能部件的利用率,這樣就能進一步進步處理器的性能。一般來講,實現(xiàn)程序的優(yōu)化調度需要軟件主要是編譯器和硬件的共同結合才能獲得比擬好的調度效果。Intel+編譯器作為一款專門針對In

4、tel型處理器進展優(yōu)化的編譯器,它們二者的結合從理論上能實現(xiàn)優(yōu)化調度,能對程序的執(zhí)行效能有某些方面和一定程度的進步。測試中處理器應選擇Intel系列的產品,實際使用的處理器為Intel奔騰4處理器1.8GHZ,內存為256B;操作系統(tǒng)考慮通用性和廣泛性,為indsXP系統(tǒng),編程環(huán)境為Visual+6.0。針對越來越多的多線程編程應用,線程間的開銷諸如線程間的切換時間、高優(yōu)先級線程的搶先時間以及線程對信號量的響應時間等指標成為制約程序執(zhí)行速度的一個重要方面。減少線程的額外開銷時間對進步程序的運行速度是非常有意義的。2.1測試指標這里主要包括四個測試指標,1線程的切換時間。2高優(yōu)先級線程的搶先時間

5、。3信號量響應時間。4線程轉異常以及異?;謴蜁r間。2.2測試方法測試中,啟動的線程開場無條件循環(huán)運行。以對指標(1)的測試為例,循環(huán)中只進展運行次數(shù)累加和線程切換的操作,無其他附加操作,直至給出完畢事件,終止線程并給出線程的運行次數(shù)和時間。測試的計算結果都是在忽略線程本身的開銷的情況下得出的,這里線程自身所花費的時間通過測試比擬占總花費的時間的比例是非常小的,對計算結果沒有太大的影響。另外假設在線程中參加對線程本身開銷的統(tǒng)計,將會引入其他的操作,同樣會有一定的時間開銷,仍然會有誤差存在。測試中對每一個測試工程皆進展五次重復測試,對得出的五個值取平均。2.3測試流程這里的測試流程以對指標(1)的

6、測試為例以流程圖的形式加以說明,后面三項的測試與此相似。2.4測試步驟2.4.1線程切換時間測試的根本步驟1創(chuàng)立兩個一樣優(yōu)先級的線程1和2。2運行線程1得到線程1的當前運行次數(shù)后,立即切換到線程2。3運行線程2得到線程2的當前運行次數(shù)后,立即切換到線程1。4重復第2步和第3步,直到給出完畢事件。5得到2至4步所花費的全部時間和兩線程分別的運行次數(shù)。6計算線程間的切換時間。這里設所花費的時間為eplasedtie,分別運行的次數(shù)為rununt1和rununt2,那么切換時間為eplasedtie/(rununt1+rununt2-1)。以下幾項與此類似。圖1線程切換時間測試流程2.4.2高優(yōu)先級

7、線程搶先時間測試的根本步驟1創(chuàng)立兩個不同優(yōu)先級的線程,假定線程1的優(yōu)先級高于線程2。2得到線程1的當前運行次數(shù)后,線程1將優(yōu)先級降到低于線程2,線程1被線程2搶先。3得到線程2的當前運行次數(shù)后,線程2將優(yōu)先級降到低于線程1,線程2被線程1搶先。4重復第2步和第3步,直到給出完畢事件。5得到2至4步所花費的全部時間和兩線程分別運行的次數(shù)。6計算高優(yōu)先級線程搶先時間。2.4.3信號量響應時間測試的根本步驟1創(chuàng)立信號量1和信號量2。2建有一樣優(yōu)先級的線程1和2,并分別懇求獲得信號量1和信號量2。3釋放一個信號量1。4線程1獲得信號量1,得到當前運行次數(shù)后,立即釋放信號量2。5線程2獲得信號量2,得到

8、當前運行次數(shù)后,立即釋放信號量1。6重復第4和第5步,直到給出完畢事件。7得到4至6步所花費的全部時間和兩線程分別運行的次數(shù)。8計算線程對信號量的響應時間。2.4.4轉異常以及從異?;謴蜁r間的測試步驟1創(chuàng)立運行一個線程。2在線程中給出一個異常。3異常處理中得出當前異常次數(shù)。4重復第2和第3步,直到給出完畢事件。5得到2至4步所花費的全部時間和異常產生的總次數(shù)。6計算轉異常以及從異常恢復的時間。2.5測試結果表1線程額外開銷測試比照測試工程線程切換時間高優(yōu)先級搶占時間信號量響應時間轉異常以及從異?;謴蜁r間未使用Intel+編譯器us1.122.272.3814.59使用Intel+編譯器(us)

9、1.092.262.379.212.6測試結論從以上四項的測試結果可以看出,除了轉異常以及從異?;謴驮谑褂昧薎ntel+編譯器后,執(zhí)行效率有了較大進步約能進步1/3外,其他幾項在使用編譯器前后幾乎沒有什么變化。從這里可以看出使用Intel+編譯器編譯的代碼對處理異常時的處理器能有優(yōu)化效果,執(zhí)行效率能有較大的進步;對于線程間的響應和切換卻幾乎達不到優(yōu)化的效果。前面提到的諸多應用領域,大量的數(shù)學運算是必需的。許多程序的主體就是大量的數(shù)學運算,運算速度對程序的執(zhí)行速度也就會有決定性的影響。假設能進步數(shù)學運算的速度,相應的程序的執(zhí)行效率就將會得到進步。3.1測試工程測試工程包括常用的三角函數(shù)運算和一些

10、開方、次方、求模、對數(shù)等常規(guī)運算。畢竟大量的復雜的運算也是由以上運算組合的。3.2測試方法這里對每一項的測試都使用一樣的測試方法,即讓每種運算都運行固定的大量次數(shù)這里采用百萬次,得到運行前后的時間值,求出二者之間的差值,即是運行固定次數(shù)的時間。再對同一種運算使用Intel+編譯器進展編譯前后的運行時間值進展比擬即可。測試中進展運算的函數(shù)參數(shù)皆為雙精度型,對于同一種運算在使用Intel+編譯器前后皆使用一樣的參數(shù),防止因帶入?yún)?shù)的不同而影響比照判斷。測試中對每一個測試工程皆進展十次重復測試,對得出的十個值取平均。3.3測試結果表2百萬次運算時間比照測試工程sinstansqrtpfdLg10未采

11、用Intel+編譯器(s)0.1710.1390.2280.0460.3730.2620.120采用Intel+編譯器(s)0.0540.0970.0810.0310.1040.0490.0623.4測試結論從以上對各項數(shù)學函數(shù)運算所耗時間的測試中可以看出,Intel+編譯器對數(shù)學函數(shù)運算的優(yōu)化效果是比擬明顯的。針對不同的運算,優(yōu)化效果也不盡一樣。對于同種運算在使用Intel+編譯器前后最差的也能將時間縮短至約原來的2/3,最好的能到達約原來的1/5。由此可以看出,假設將其用于涉及有較大運算量的程序中,必將較大地進步程序的處理速度,較好的滿足我們在應用中對程序速度的要求。從以上各項指標的比照測試中,可以得出在減少線程間的轉換開銷方面Intel+編譯器并不能發(fā)揮什么作用,對于線程本身轉異常以及從異?;謴头矫鎱s能有較大的進步??紤]到異常和中斷處理機制的相似性,我們也可推斷出其對中斷處理效率的進步也應該是有較大作用的。在數(shù)學函數(shù)運算方面,它能發(fā)揮出較大的作用,能較明顯地進步數(shù)學函數(shù)運算的效率。因此我們認為經(jīng)Intel+編譯器編譯過的數(shù)學函數(shù)運算的代碼能更為高效的執(zhí)行,這對包含較多數(shù)學運算的應用程序來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論