SAY討論區

標題: 新Android系統ART解析:流暢度、性能猛提升 [打印本頁]

作者: 沫茶茶    時間: 2014-7-7 12:29:24     標題: 新Android系統ART解析:流暢度、性能猛提升

Android 下一個版本將會有兩個重大改變。其中一個是明顯的改變,系統界面采用全新的Material Design,另一個改變屬於底層部分,但是也直接影響到用戶體驗。Google將徹底拋棄 Davik,啟動新的應用環境ART(Android Runtime)。ART 能否解決長期困擾Android的卡頓問題?AnandTech網站對此進行了深入的分析。
架構
ART 完全兼容Dalvik的字節碼格式dex,因此,開發者編寫軟件不會受到影響,也無需擔心兼容性問題。ART的一大變化是,它不僅支持即時編譯(JIT),而且支持預先編譯(AOT)。在Dalvik上,每次軟件運行,都需從字節碼編譯為原生代碼,ART可以隻編譯一次。然後,軟件每次運行時,執行編譯好的原生代碼。預先編譯也為新的優化帶來了可能性。同時,這也會明顯改善電池續航,因為軟件運行時不用編譯了,從而減少了CPU的使用頻率,降低了能耗。
ART 也有一些缺點。其中一個是,設備首次啟動,以及應用的首次啟動時間會變長,不過,Google 宣稱說,這種差別不是很大,而且他們會在這方面努力,使其接近甚至超過 Dalvik。另一個缺點是原生代碼占用空間更大,不過,現在設備的空間應該都足夠。
垃圾回收
Android 虛擬機是自動內存管理。優點是,開發者無需擔心內存管理,缺點是,開發者失去了控制權,依賴於系統本身的機制。Dalvik 的垃圾回收機制是造成系統卡頓的原因之一。在Dalvik虛擬機下,啟動垃圾回收機制會造成兩次暫停(一次在遍歷階段,一次在標記階段)。所謂暫停,就是應用的所有線程都不再執行。如果暫停時間過長,應用渲染中就會出現掉幀。用戶體驗上來說,就是應用運行的時候出現卡頓。
Google宣稱,Neuxs 5的平均暫停時間是54ms,結果就是,每次垃圾回收啟動,平均掉幀是4幀。如果應用編寫的不好,情況會更加糟糕。Anandtech測試了FIFA遊戲。Dalvik環境下,啟動應用的幾秒內,垃圾回收啟動9次,應用暫停時間總和603ms,總共掉幀是214幀。在ART下,情況有了極大改善。同樣時間裡,應用暫停時間總和是12.364ms(4次前臺垃圾回收,2次後臺垃圾回收),總共掉幀是63幀。
ART 能夠做到這一點,是因為應用本身做了垃圾回收的一些工作。垃圾回收啟動後,不再是兩次暫停,而是一次暫停。在遍歷階段,應用不需要暫停,而標記階段的暫停時間也大大縮短,因為 Google使用了一種新技術(packard pre-cleaning),在暫停前就做了許多事情,減輕了暫停時的工作量。Google承諾說,他們已經把平均暫停時間降到了3ms,遠遠超過Dalvik的垃圾回收。
與此同時,Google還改進了內存分配系統,把分配速度加快了10倍。垃圾回收算法也進行了修改,以增強用戶體驗,避免應用被打斷。
64位支持
ART支持64位系統,這會帶來性能上的提升,加密能力的大幅改進,同時保持與現有32位應用的兼容性。與蘋果不同的是,Google使用了指針壓縮,以避免轉換到64位後,空間占用大幅增加,其虛擬機仍然是 32 位指針。
Google宣稱,現有Play Store上應用中,85%都可以轉移到64位,剩下的15%有原生代碼,需要重新編譯。總的來說,轉移到64位應該會在短時間內完成。
總結
從許多方面來說,Google兌現了其提升性能的承諾,解決了困擾Android的諸多問題。Android的一些致命弱點,原因在於非原生應用和自動內存管理系統,ART在這些方面做出了大量改進。總之,在應用的流暢度和性能方面,Android終於可以與iOS一決高下了。
b4kgfb4mdyb21.jpg

附件: [b4kgfb4mdyb21.jpg] b4kgfb4mdyb21.jpg (2014-7-7 12:29:24, 0 Bytes) / 下載次數 0
http://say.go2tutor.com/forum.php?mod=attachment&aid=NjE0NzIxfDQ3ZDQzYjVifDE3ODM3NjY0MzJ8MHww
作者: Tung8887    時間: 2014-7-7 18:07:46

強人,佩服死了。呵呵,不錯啊
作者: andykom28    時間: 2014-7-7 22:30:47

終於看完了~~~
作者: kengtr    時間: 2014-7-8 03:38:18

長時間沒來看了 ~~
作者: juny0385    時間: 2014-7-8 05:48:22

呵呵,找個機會...
作者: kensiu123    時間: 2014-7-8 07:44:05

天天尼伊達,快樂似神仙
作者: 24gold24    時間: 2014-7-8 12:44:11

快站沙發,不知道有沒有成功
作者: 切雞飯`    時間: 2014-7-8 16:33:24

太棒了!
作者: ILOVEU5    時間: 2014-7-9 10:09:54

這是一篇不錯的帖子
作者: 弒殺滅神    時間: 2014-7-11 06:48:35

賺點分不容易啊
作者: Disy    時間: 2014-7-12 06:55:57

我來看看!謝謝  
作者: appson    時間: 2014-7-13 09:34:08

努力,努力,再努力!!!!!!
作者: plas_hoz    時間: 2014-7-14 11:08:44

先看看怎麼樣!




歡迎光臨 SAY討論區 (http://say.go2tutor.com/) Powered by Discuz! X2