抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > java jit aot_AOT和JIT编译器之间的区别android

java jit aot_AOT和JIT编译器之间的区别android

时间:2023-10-28 23:23:55

相关推荐

在Marshmallow,有一个AOT编译器添加了ART.来自Android N的另一个编译器JIT另外添加了AOT.

我的问题是什么是AOT编译器特定的作业/功能以及什么是JIT编译器作业/功能.

解决方法:

在Android Java类中转换为DEX字节码.

DEX字节码格式通过ART或Dalvik运行时转换为本机机器码.

Dalvik is a JIT (Just in time) compilation based engine. There were

drawbacks to use Dalvik hence from Android 4.4 (kitkat) ART was

introduced as a runtime and from Android 5.0 (Lollipop) it has

completely replaced Dalvik. Android 7.0 adds a just-in-time (JIT)

compiler with code profiling to Android runtime (ART) that constantly

improves the performance of Android apps as they run.

(Dalvik使用JIT(及时)编译,而ART使用AOT(Ahead of time)编译.)

及时(JIT):

使用Dalvik JIT编译器,每次运行应用程序时,它都会动态地将Dalvik字节码的一部分转换为机器代码.随着执行的进行,编译和缓存更多的字节码.由于JIT仅编译代码的一部分,因此它具有较小的内存占用并且在设备上使用较少的物理空间.

提前(AOT):

ART配备了Ahead-of-Time编译器.在应用程序的安装阶段,它会将DEX字节码静态转换为机器代码并存储在设备的存储中.这是在设备上安装应用程序时发生的一次性事件.

Android N包含一个混合运行时:

安装过程中不会有任何编译,应用程序可以立即启动,

字节码被解释. ART中有一个新的,更快的解释器,它伴随着一个新的JIT,但JIT信息不会持久存在.

而是在执行期间对代码进行分析,并保存结果数据.

ART的好处:

>在安装过程中完成DEX字节码转换后,应用程序运行得更快.

>直接执行本机代码,减少应用程序的启动时间.

>提高电池性能,因为用于逐行解释字节代码的功率得以保存.

>改进垃圾收集器.

ART的缺点:

>由于在安装过程中将DEX字节码转换为机器代码,因此App安装需要更多时间.

>由于安装时生成的本机代码存储在内部存储中,因此需要更多内部存储.

标签:android,jit,android-6-0-marshmallow,android-7-0-nougat

来源: https://codeday.me/bug/0611/1218645.html

如果觉得《java jit aot_AOT和JIT编译器之间的区别android》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。