Abstract
近年來,隨著嵌入式系統運算能力的成長,智慧型手機的市場漸漸受到消費者青睞。Google於2007年推出Android平台,已成為近代極具有市場潛力與商業價值的開放式開發平台。Android平台使用JAVA語言,不同於傳統JAVA使用JVM,Android採用他們自行設計的Dalvik VM來進行軟體開發。Dalvik VM採用一種類似RISC架構語法的中介碼Dex來提升VM直譯時期的效率。儘管如此,Dalvik VM還是無法避免不斷直譯重複熱門程式片斷所造成的效能浪費問題。 在本篇論文中,我們展示一種針對Android平台所設計的提前式編譯優化架構Dryad。一種在主機端預先針對模擬器所偵測得到熱門片段資訊,把關鍵性的Dex程式碼預先編譯以及優化成目標裝置機械碼,讓Dalvik VM在執行時期運行熱門片段時可以直接調用我們預先編譯的機械碼,來減少不斷直譯相同程式片段所造成的資源浪費以達到效能提升的功能。本篇論文參考間接式二進位轉換原理設計了一種Dex-to-C轉換機制,先把一種關鍵性的Dex程式轉換成高階語言C,其中提出針對低階語言轉換高階語言所遇到的資料還原問題、架構還原問題以及資料型態還原問題提出探討。在最後實驗結果,我們可以看到使用Dryad架構針對Embedded CaffeineMark以及一些常見的運算進行測試。結果證實在综合性效能評比項目中,我們獲得140x的效能分數提昇。