ART和Dalvik的比較

       從Android 4.4開始就已經支持並且可選則的在運行時用ART替代Dalvik。
       ART(Android RunTime)是Dalvik的下一個版本,Dalvik運行時的是字節碼,且虛擬機的用途就是用來運行Android系統的應用程序。
       ART有相較於Dalvik有兩大特色:
  (1)超前編譯(AOT:Ahead-of-Time),主要用於提升速度和減少內存(沒有JIT,當然會減少相應的內存開銷)。
  (2)提升了垃圾回收性能。
       AOT意味着我們的app被一次性的編譯成本地代碼(native code),這種本地代碼存儲在手機上,在運行時是執行的高效的本地代碼而不是字節碼。但是因爲解釋器很慢(解釋字節碼時),所以虛擬機開發者發明了一個新的技術叫做Just-in-Time(即JIT)編譯,這種技術將我們的代碼飛快的編譯爲native coed。Dalvik就是典型的JIT虛擬機,但是JIT虛擬機的缺點在於:JIT編譯器運行於我們在使用app的時候,也就是說只要我們在使用app,那麼就伴隨着JIT編譯器的運行(想想都覺得對內存的消耗夠大了。。。),這也就增加了內存潛在的壓力。不過JIT編譯器的優勢在於:JIT編譯器可以考慮將你正在使用的代碼進行優化。
       AOT和JIT類似,但是它只運行一次----當app在安裝的時候運行一次。雖然AOT缺乏優化代碼的能力,但是它缺可以通過較少的編譯來執行更廣泛的優化過的代碼。自然地,在開機時ART會比Dalvik要慢,因爲他編譯系統一些apk需要時間,但是一旦運行起來,ART就會比Dalvik要快了。
       值得一提的是,雖然在4.4上已經放出ART,但是並不是默認的選擇,可以到設置>開發者選項>選擇運行時間>使用ART。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章