本帖最後由 瀧羽翼 於 2014-6-23 02:15 編輯
ART 的好與壞
ART 在一般的情況下可以為 App 的執行時間最高省去 50% , 對於大型 Apps 的執行有著明顯的優勢 , 由於執行時間短了 , 處理器的負載時間亦減少 , 變相令裝置的續航力時間提升 . 同時令處理器更可以即時對於動畫介面效果以及觸控回饋等作出反應 , 令延誤感減少 , 對於多核心的裝置 , ART 可以令裝置在啟動最少的核心情況下完成任務 , 亦令佔用的 RAM 減少 , 這就是 Google 為什麼認為 512MB RAM 的裝置都可以跑得順暢 .
android art (4)有利是否就有弊 ? 是的 . 由於在安裝 App 時已經直接編譯成機器可讀懂的語言 , 所以間接令每個 Apps 的所需儲存空間加大 , 因應 App 的不同 , 增加量為 10~20% . 不過以一個 100MB 的遊戲為例 , 其實當中程式碼只有 20MB~30MB 左右 , 其實部份都是一些圖片及音效等 , 30MB 的 20% 就是 6MB , 以現時主流機子動輒已經 32GB 來說 , 多幾個 MB 不算什麼 . 另一個問題就是 Apps 在安裝時已經要做編譯 , 所以會令安裝的時間加長 , 不過換一個想法就是 , 痛一次總比每次痛好吧 . 最後一個問題是 ART 的推出太新了 , 有部份 Apps 會出現不良反應 , 如 Whatsapp . 不過這些兼容小問題相信可以在短期內解決 .
現時 Android 的 ART 仍在起步階段 , 要談論是否有用仍是言之尚早 , 畢竟 Google 仍把這個功能隱藏於開發者選項中是不太想一般用戶去接觸 , 亦可能是 ART 仍存在不少的 bugs . 但既然有這個功能 , 就去測試一下吧 . 以筆者使用了 ART 的一星期 , 其實在筆者個感覺上速度並沒有明顯提高 (可能是因為機子本身的規格不低) , 反而令筆者覺得開機的速度慢了(需時 16秒左右) , 而且在 Apps 的安裝中亦感覺安裝時間長了 . 但亦感覺到續航力似乎好了 . 筆者亦用同一手機在 Dalvik 模式 及 ART 模式下進行了 Antutu 測試 , 大家會發現 ART 模式的分數低了 , 留意上圖 , 可見到各項測試中的分數其實兩者可以說是沒有分別 , 分數最大的差異就是在「Android 的虛擬機器」, 足足少了1倍 , 由此可見 , 在 ART 下 , 虛擬的能力是大打折扣 , 但這個分數已經不重要 , 因為除了安裝 Apps 時 , ART 下根本已經不需要虛擬機器 .
其實亦不是筆者個人覺得 ART 在這個階段沒有為 Android 系統帶來明顯的速度提升 , 坊間不少的 ART V.S Dalvik 測試中都反映了兩者之間似乎沒有速度上的大差別 . 不過筆者仍相信 ART 是一條必須走的路 , 因為如果繼續採用 Dalvik 的虛擬編譯方式去運行 App , 當 App 的容量再大 , 需要效能再高時 , Dalvik 就是一個壓不下的樽頸 .
art vs dalvik影片
Android 4.4 Kitkat ART VS Dalvik Test
ART vs Dalvik - A very unscientific series of tests |