請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/61045
標題: | Dalvik Tracing JIT 最佳化 -- 去除冗餘例外檢查與低成本例外檢查實作 Dalvik Tracing JIT Optimization -- Redundant Check Elimination and Low-cost Check Implementation |
作者: | Tzu-Hsiang Chien 簡子翔 |
指導教授: | 廖世偉 |
關鍵字: | 編譯器,冗餘檢查,例外處理, Tracing JIT,Null Pointer Check,Exception Handling, |
出版年 : | 2013 |
學位: | 碩士 |
摘要: | 本論文將會探討 Dalvik Tracing JIT 的特性,解釋為何現有的最佳化無法消除一些冗餘的 Null Pointer 檢查。
為解決此問題,本文提出一個以 SSA Renaming 為基礎的程式分析,用以消去這些冗餘檢查。對於「部分冗餘檢查 (Partial Redundant Check)」,本文亦善用 Tracing JIT 的特性,將迴圈內的檢查投機地移到迴圈外,以減少程式的執行時間。 除此之外,對於非冗餘的 Null Pointer 檢查,本文亦引入硬體中斷機制,利用「記憶體分頁存取保護」降低 Null Pointer 檢查在正常情況的執行成本。 根據實驗結果,本文提出之最佳化分別可以讓 LinPack 加快 20.08% 與 SciMark 2.0 加快 2.74%。至於最佳化的額外負擔,對於不常操作 Java 物件或陣列的 Benchmarks 沒有顯著的影響。 This thesis discusses several properties of Dalvik Tracing JIT and explains the reason why does the existing optimization or algorithm can't eliminate some redundant null pointer check. To solve this problem, this thesis proposed a new algorithm based on SSA renaming to eliminate these redundant checks. For the partial redundant checks, we can even take advantage of the Tracing JIT, and speculatively move the checks to the loop header so that we can reduce the number of instructions per iteration. For the non-redundant checks, this thesis utilize the hardware trap and page protection mechanism to reduce the run-time cost of the normal execution of the program. Our experimental results shows that our approach can speed up LinPack by 20.08% and SciMark 2.0 by 2.74%. For the benchmarks that seldom access Java objects or arrays, the overhead of our approach are negligible. |
URI: | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/61045 |
全文授權: | 有償授權 |
顯示於系所單位: | 資訊工程學系 |
文件中的檔案:
檔案 | 大小 | 格式 | |
---|---|---|---|
ntu-102-1.pdf 目前未授權公開取用 | 1.4 MB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。