ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
三、混合模式的理解 ART 初期是使用全量的AOT (aheader of time) 变成机器码(指令); 因为耗安装时间和系统升级后的启动时间;所以在ART 的时候,先把dex 解释成中间态的,不编译成机器码。在运行的时候,或者充电的时候,只编译“热代码” 引用infoq 的一篇文章 http://www.infoq.com/cn/news/2016/04/android-n-aot-jit Android N(7.x)开发者预览版包含了一个混合模式的运行时。应用在安装时不做编译,而是解释字节码,所以可以快速启动。ART中有一种新的、更快的解释器,通过一种新的JIT 完成,但是这种JIT 的信息不是持久化的。取而代之的是,代码在执行期间被分析,分析结果保存起来。然后,当设备空转和充电的时候,ART 会执行针对“热代码”进行的基于分析的编译,其他代码不做编译。为了得到更优的代码,ART 采用了几种技巧包括深度内联。 对同一个应用可以编译数次,或者找到变“热”的代码路径或者对已经编译的代码进行新的优化,这取决于分析器在随后的执行中的分析数据。这个步骤仍被简称为AOT,可以理解为“全时段的编译”(All-Of-the-Time compilation)。