Logo image
Icing: 設計實作一個可強化Android Dalvik JIT之提前式編譯架構
Thesis

Icing: 設計實作一個可強化Android Dalvik JIT之提前式編譯架構

Hsu, Hong-Rong
Masters, 國立清華大學, 資訊工程學系
2009

Abstract

提前式編譯 最佳化 動態編譯 谷哥 虛擬機器 Google Android Dalvik VM Ahead of Time Compiler JIT Optimization
Google在2007年釋出了Android開放手機平台,至今學界、業界皆投入相當的心力在Android嵌入式產品的研發,國內大廠如宏達電、華碩、宏□等皆推出了基於Android作業系統的智慧型手機與小型筆記型電腦且廣受國際歡迎;未來,平板電腦、電子書、甚至車輛電子皆會有以Android為作業系統的產品問世,不可否認,Android是個趨勢,也是國內在嵌入式軟體平台的一個機會。 目前Android平台的效能是被廣泛討論的議題,為了強調應用程式的高移植性,Google選擇了以Java作為其應用程式開發語言,並創造了名為Dalvik的虛擬機器(VM)和Run-Time Library來支援Java應用程式的運行;根據實驗比較,Dalvik VM的效能比其傳統Java VM在嵌入式系統上的表現,還有很多最佳化的空間;直至2009年11月,Google整合了Dalvik動態編譯器(JIT)至其最新的Code tree,來嘗試解決Dalvik效能低落的問題。 動態編譯器利用執行期間來做Profiling與Compilation的動作,除了有直接影響使用者反應時間的缺點外,其能產生code的quality也有限(不能作深度太深的最佳化);本論文提出一個名為”Icing”的提前式編譯環境,在off-line時將程式的熱門片段編譯成native code來避開VM直譯器的overhead;另外Icing的Static-Time Profiling依Ahead-of-Time Compiler(AOTC)與Just in Time Compiler(JIT)的特性,將程式中的method分工成適合AOTC、適合JIT兩類,藉由結合兩個Compiler的優點,來提升整體Android應用程式的效能。 Icing是結合了我們針對Dalvik VM設計的特殊最佳化,與傳統AOTC for Java設計考量的一個編譯環境,在這篇論文我們會詳細介紹Icing中各個Translation Phase的實作。數據方面,比較JIT-only的Android,加上Icing的輔助能將其效能平均提升2.89倍。

Metrics

1 Record Views

Details

Logo image