Android編譯器Dalvik vs ART

在這裏插入圖片描述

Dalvik

Dalvik是Just In Time(JIT)編譯器,也就是說及時編譯器。在Dalvik編譯器中,只有當前需要執行的代碼纔會變編譯,剩下的代碼在後面要使用的時候纔會被編譯。Dalvik僅僅只是編譯運行時需要的部分代碼,不會一次把所有的代碼進行編譯,所以會使用很少的手機內存空間

JIT框架
在這裏插入圖片描述
JIT編譯
在這裏插入圖片描述
JIT工作流程
在這裏插入圖片描述

ART

ART 又被稱爲Ahead Of Time(AOT),AOT編譯器和JIT編譯器的不同之處在於:AOT編譯器會在安裝app的時候就把Java或者kotin語言轉化成機器語言,而不是在app運行時進行編譯的,這樣會使得app的運行速度變得很快。

在這裏插入圖片描述

Dalvik vs ART

1、編譯方式
art採用AOT在安裝app時提前編譯整個代碼,而Dalvik 採用JIT在安裝和運行時動態編譯部分代碼。

2、啓動時間
和Dalvik對比,ART會化更多的時間在啓動上,所以啓動時間比較慢。

3、空間
因爲ART採用AOT方式,所以在安裝的時候需要更多空間,而Dalvik使用JIT方式,所以會使用更少的空間。
4、電量
由於採用了AOT方法,ART在很大程度上提高了電池性能。Dalvik使用JIT方法時,這會提高電池利用率。
5、垃圾回收機制
ART具有比Dalvik更好的垃圾回收功能。

ART優點

1、因爲在安裝時就完成了編譯,所以ART上的程序運行的更快。
2、使用ART可以提高電池的性能。
3、垃圾回收機制也得到了改善。
4、由於直接執行本機代碼,因此ART減少了應用程序的啓動時間。

ART缺點

1、由於代碼的編譯一次完成,因此ART在安裝過程中需要更多存儲空間。
2、與Dalvik相比,系統的啓動時間更長,因爲它使用了AOT的方式。

參考文獻

1、https://source.android.com/devices/tech/dalvik/art-ti

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章