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

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