1. <track id="hpec6"></track>

      1. <menuitem id="hpec6"><dfn id="hpec6"></dfn></menuitem>

        1. <track id="hpec6"></track>
          當前位置:
          首頁 > 圖文科技 > 安卓4.4 ART模式解讀、性能對比

          安卓4.4 ART模式解讀、性能對比

          安卓4.4 KitKat里最引人關注的變化之一就是新的安卓運行時ART,但因為還是試驗性質的,Google并未做大張旗鼓的宣傳,相關介紹也很少,只說它有望取代使用許久的Dalvik虛擬機。

          AnandTech近日詳細考察了Nexus 5,其中就對ART模式做了一些介紹和測試。

          在安卓設備上,Dalvik虛擬機是運行Java語言編寫應用的必需步驟,正是它將應用編譯為字節碼(ByteCode),然后再轉換成dex(Dalvik可執行格式),最終交給Dalvik虛擬機來運行。

          通過這一過程,安卓應用可以很好地適應各種形形色色的設備,但也因為中間的轉換過程降低了執行效率。

          Android 2.2的時候引入了即時編譯器(JIT),大大提高了部分應用的執行效率。此后雖然不再有明顯的性能提升,但是Google和廠商們一直都在優化Dalvik。事實上,如果你執行了Dalvik緩存清理,就會看到“安卓正在更新”(Android is upgrading)的提示,此時幕后就正在對dex文件進行深入優化,同時重建Dalvik緩存分區。

          ART拋棄了JIT而轉向AOT(預先編譯)模式,會在啟動過程中同樣的“安卓正在更新”時開始生效,只不過需要更長時間。

          如果查看這個時候的系統日志,就會發現新的ART文件格式“dex2oat”正在運行、編譯成文件、建立Dalvik緩存。

          I/art ( 615): DexFile_isDexOptNeeded cache file?/data/dalvik-cache/data@app@com.google.android.apps.maps–2.apk@classes.dex?does not exist for /data/app/com.google.android.apps.maps–2.apk

          I/PackageManager( 615): Running dexopt on: com.google.android.apps.maps

          I/dex2oat ( 951): dex2oat:?/data/dalvik-cache/data@app@com.google.android.apps.maps–2.apk@classes.dex

          W/dex2oat ( 951): Compilation of com.google.zxing.g.a.s[] com.google.zxing.g.a.s.f() took 126.362083ms

          ART目前兼容ARMv7、x86、MIPS三種處理器架構,還不支持64位的ARMv8,而且從字節碼到原生代碼的轉換暫時僅支持AOT編譯,JIT模式得以后再說。這更加證明了ART現在的試驗性質。

          底層虛擬機的變化對安卓應用的性能、耗電量影響都是巨大的,ART又有什么變化呢?

          安卓4.4 ART模式解讀、性能對比

          這里找來兩部Nexus 5、兩部Moto X,分別各自運行Dalvik、ART。運行時模式可以在設置-開發者選項里切換,而除了少部分應用之外,大多數都可以正常運行于ART。

          安卓4.4 ART模式解讀、性能對比

          Nexus 5 AndEBench測試中,單線程下ART的速度有所提升,但是雙線程、四線程不如Dalvik,顯然在線程分派方面還不夠好。

          Caffeinemark是一款經典的Java測試程序,ART性能暴增了超過50%。Linpack也提升了幾乎30%。

          某廠商看到了Caffeinemark的對比后也贊嘆不已,并表示Dalvik的潛力確實已經基本挖掘殆盡,ART是個很好地的方向。

          安卓4.4 ART模式解讀、性能對比

          Moto X上使用了高通定制的Dalvik,AndEBench單線程、雙線程表現基本不相上下,四線程模式無法運行,Caffeinemark則提升了不到20%。

          事實證明,ART的確可以帶來明顯的性能提升,進一步優化后肯定還會更好,但是也有一些代價,必需需要占用更多存儲空間,應用安裝和系統啟動時間會延長不少(AOT編譯),不過我們相信這是值得的。

          成1人性直播