Android N混合使用AOT编译,解释和JIT三种运行时
来源:互联网 发布:淘宝网小女孩连衣裙 编辑:程序博客网 时间:2024/06/07 11:18
引用:http://www.infoq.com/cn/news/2016/04/android-n-aot-jit
Android N引入了一种包含编译、解释和JIT(Just In Time)的混合运行时,以便在安装时间、内存占用、电池消耗和性能之间获得最好的折衷。
ART是在Android KitKat(译者注:Android 4.0)引入并在Lollipop(译者注:Android 5.0)中设为默认解决方案的主要特性之一,是当时的一种新的运行时。ART取代了Dalvik,但是前者与后者仍然保持了字节码级的兼容,因为前者仍在运行DEX文件。ART的主要特征之一就是安装时对应用的AOT编译。这种方式的主要优点就是优化产生的本地代码性能更好,执行起来需要更少的电量。劣势在于安装文件所需的空间和时间。在Lollipop和Marshmallow(译者注:Android 6.0)中,大的应用需要数分钟才能安装完。
Android N开发者预览版包含了一个混合模式的运行时。应用在安装时不做编译,而是解释字节码,所以可以快速启动。ART中有一种新的、更快的解释器,通过一种新的JIT完成,但是这种JIT的信息不是持久化的。取而代之的是,代码在执行期间被分析,分析结果保存起来。然后,当设备空转和充电的时候,ART会执行针对“热代码”进行的基于分析的编译,其他代码不做编译。为了得到更优的代码,ART采用了几种技巧包括深度内联。
对同一个应用可以编译数次,或者找到变“热”的代码路径或者对已经编译的代码进行新的优化,这取决于分析器在随后的执行中的分析数据。这个步骤仍被简称为AOT,可以理解为“全时段的编译”(All-Of-the-Time compilation)。
这种混合使用AOT、解释、JIT的策略的全部优点如下。
- 即使是大应用,安装时间也能缩短到几秒
- 系统升级能更快地安装,因为不再需要优化这一步
- 应用的内存占用更小,有些情况下可以降低50%
- 改善了性能
- 更低的电池消耗
如果您想了解关于编译时优化的更多细节,我们推荐播客Episode 45: State of the ART,其中邀请了两位嘉宾——Android ART团队的leader Brian Carlstrom和Android平台的工程总监 Anwar Ghuloum。
查看英文原文:Android N Combines AOT, Interpretation and JIT
- Android N混合使用AOT编译,解释和JIT三种运行时
- JIT和AOT编译技术
- AOT,JIT区别,各自优劣,混合编译
- [Android]JIT、ART和AOT
- Java三种编译方式:前端编译 JIT编译 AOT编译
- Java三种编译方式:前端编译 JIT编译 AOT编译
- Java三种编译方式:前端编译 JIT编译 AOT编译
- JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
- JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
- JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
- JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
- AOT和JIT
- dex编译相关:JIT、AOT
- JIT(动态编译)和AOT(静态编译)编译技术比较
- JIT(动态编译)和AOT(静态编译)编译技术比较
- JIT(动态编译)和AOT(静态编译)编译技术比较
- JIT(动态编译)和AOT(静态编译)编译技术比较
- jit aot
- python3 遍历删除特定后缀名文件
- dataserver 1 FAIL to up ... CHECK IT
- NoSql对于事务的支持
- HDU 1757 A Simple Math Problem(构造矩阵)
- 《蓝牙4.0实战演练》第二版 网蜂团队 倾力打造(2014-3-6)
- Android N混合使用AOT编译,解释和JIT三种运行时
- JSP学习笔记(二)之JSP动作
- Python3.x中sklearn机器学习库中PCA参数问题
- ShareSDKUtils,封装的分享工具类,使用默认的GUI或者自定义分享某个平台
- [NOIP提高组2000]单词接龙
- nyoj746 整数划分(四)
- C# DevExpress实现搜索智能提示功能
- java下划线命名转驼峰命名
- HDU 1540 Tunnel Warfare线段树解法及分块解法