版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java程序語言因其高效和安全性在不同的平臺都得到了廣泛應用,從服務端到移動電話平臺,因此提供高效的Java優(yōu)化編譯器與運行系統(tǒng)有著重要的意義。為了發(fā)揮多核優(yōu)勢,多核機器的普及增加了對多線程程序的需求。Java作為第一個在語言級提供對多線程支持的編程語言,是一種被廣泛使用的并行編程語言。然而多線程編程難度較大,程序員容易引入并發(fā)錯誤,如數(shù)據(jù)競爭、死鎖等。論文關(guān)注了Java程序的兩個熱點問題:運行時性能和并發(fā)錯誤檢測。
對于Ja
2、va程序的運行時性能優(yōu)化方面,論文基于Open64編譯器構(gòu)建了Java靜態(tài)編譯器Opencj,并基于Harmony DRLVM的運行時系統(tǒng)給出了動靜態(tài)結(jié)合的編譯優(yōu)化框架。通過動靜態(tài)結(jié)合的編譯優(yōu)化框架,嘗試揉合動態(tài)優(yōu)化與靜態(tài)優(yōu)化的各自優(yōu)勢進一步發(fā)掘優(yōu)化空間,提高Java程序的運行時性能。Openqi讀入Java的源程序或字節(jié)碼,生成Linux/X86平臺的可執(zhí)行代碼。Opencji完全繼承了Open64的高效優(yōu)化模塊,并實現(xiàn)對Java異常
3、機制的支持。Open64編譯器采用一種樹型結(jié)構(gòu)的中間表示W(wǎng)HIRL。它能表示各種高級控制流結(jié)構(gòu),但不能顯式的提供數(shù)據(jù)流信息。論文基于SSA(Static Single Assignment)對WHIRL進行擴展,提出一種新的優(yōu)化結(jié)構(gòu)WHIRL SSA。WHIRL SSA通過將SSA信息,包含版本信息、phi節(jié)點和別名訪問的mu/chi節(jié)點,標注在WHIRL節(jié)點上,顯式的為數(shù)據(jù)流分析提供使用-定義信息。WHIRL SSA是第一個同時包含了
4、數(shù)據(jù)流和控制流信息、基于樹結(jié)構(gòu)高級中間表示的優(yōu)化架構(gòu)。論文討論了基于WHIRL SSA的優(yōu)化機會,并在該優(yōu)化結(jié)構(gòu)中實現(xiàn)了Java數(shù)組邊界冗余檢測的刪除優(yōu)化。優(yōu)化的實現(xiàn)對科學計算類程序有著重要的意義。在NPB3.0基準測試集的性能測試中,Openci的靜態(tài)優(yōu)化性能比Sun JDK1.6的性能平均快超過20倍。
對于Java多線程程序的并發(fā)錯誤檢測方面,論文關(guān)注數(shù)據(jù)競爭錯誤的動態(tài)檢測。靜態(tài)檢測技術(shù)固有的不精確性導致過多假的錯誤報告
5、,給程序員帶來繁重的驗證開銷:相反動態(tài)檢測技術(shù)能夠報告出真正的競爭錯誤。但動態(tài)檢測執(zhí)行被插樁的代碼和記錄訪問歷史信息引入了巨大的時間開銷,這限制了動態(tài)數(shù)據(jù)競爭檢測器的廣泛使用。先前的研究工作通過調(diào)整檢測粒度減少對面向?qū)ο蟪绦騽討B(tài)數(shù)據(jù)競爭檢測的開銷。但他們只有兩層粒度:對象層和域?qū)印U撐幕谝环N數(shù)據(jù)競爭錯誤模式會多次發(fā)生的現(xiàn)象,通過對象擁有關(guān)系提出了三層粒度的動態(tài)檢測算法,進一步減小了動態(tài)檢測開銷。檢測器在JVM的垃圾回收模塊中構(gòu)建對象擁
6、有關(guān)系樹,依據(jù)happens-before策略,開始只監(jiān)控全局對象的擁有者對象,當有潛在數(shù)據(jù)競爭發(fā)生時,自動調(diào)小檢測粒度。論文在同一個JVM中實現(xiàn)了4種粒度的檢測算法,給出了相對公平的性能比較。Java程序的測試結(jié)果表明三層粒度的檢測算法在沒有減少檢測精度的情況下,比域?qū)恿6葴p少了平均3倍的檢測開銷。論文最后討論了動靜態(tài)結(jié)合的編譯優(yōu)化框架并對論文進行了總結(jié)與展望。
論文的主要貢獻包括:
●給出了一個動靜結(jié)合的編譯優(yōu)化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多線程程序數(shù)據(jù)競爭靜態(tài)檢測方法研究.pdf
- Java語言的程序漏洞檢測與診斷技術(shù).pdf
- POSIX多線程程序中數(shù)據(jù)競爭錯誤的檢測.pdf
- 多線程程序數(shù)據(jù)競爭檢測和驗證方法研究.pdf
- Java并發(fā)程序的模型提取與模型檢測技術(shù)研究.pdf
- 多核程序的靜態(tài)數(shù)據(jù)競爭檢測及確定性重演的研究.pdf
- 基于Java字節(jié)碼的多線程數(shù)據(jù)競爭檢測方法研究及工具實現(xiàn).pdf
- 多線程程序中數(shù)據(jù)競爭故障的動態(tài)檢測技術(shù)研究.pdf
- 動態(tài)數(shù)據(jù)競爭檢測研究.pdf
- 基于控制流分析和數(shù)據(jù)流分析的Java程序靜態(tài)檢測方法的研究.pdf
- 基于共享變量訪問頻度的多線程程序數(shù)據(jù)競爭檢測方法研究.pdf
- 面向數(shù)據(jù)流的Java程序指針分析技術(shù)研究.pdf
- 數(shù)據(jù)流程序動態(tài)調(diào)度與優(yōu)化方法研究.pdf
- Java程序動態(tài)更新的研究.pdf
- 基于動態(tài)二進制翻譯的多線程程序數(shù)據(jù)競爭檢測方法研究.pdf
- 基于污點分析的Java Web程序脆弱性檢測方法研究.pdf
- 增量式數(shù)據(jù)競爭檢測.pdf
- 面向數(shù)據(jù)密集計算的Java虛擬機性能分析與優(yōu)化.pdf
- 面向并發(fā)程序數(shù)據(jù)競爭故障的變異策略研究.pdf
- 面向MPM的制造數(shù)據(jù)建模與工藝程序優(yōu)化研究.pdf
評論
0/150
提交評論