安卓4.4 ART模式到底是什么?性能有多强?

目前Android 4.4的消息网上已经有了不少,听的最多的,最引人关注的当然就是Android4.4 KitKat的ART模式了,但因为还是试验性质的,Google并未做大张旗鼓的宣传,相关介绍也很少,只说它有望取代使用许久的Dalvik虚拟机。那么ART到底是个什么东西?性能很强大吗?国外AnandTech网站近日就做了这么一个ART模式的介绍和测试。

ART,也就是Android Runtime(Android Runtime是一个重要的系统组成。引导系统init会调用Android Runtime中的start函数,在这个函数里完成启动android的一切工作),它将会代替Dalvik,并且改变Android智能手机的运行方式。我们知道,Dalvik虚拟机负责Android系统中的应用程序运行,它的运行环境使用了JIT及时编译(Just-In-Time)来进行转译,但它只是一个基于原始应用程序代码的不完整版本。而ART则是使用AOT进行处理(Ahead-Of-Time),并会在应用程序安装完毕时,进行预先的基础性编译作业,这就可以使应用程序成为不折不扣的原生应用。

在安卓设备上,Dalvik虚拟机是运行Java语言编写应用的必需步骤,正是它将应用编译为字节码(ByteCode),然后再转换成dex(Dalvik可执行格式),最终交给Dalvik虚拟机来运行。

通过这一过程,安卓应用可以很好地适应各种形形色色的设备,但也因为中间的转换过程降低了执行效率。

Android 2.2的时候引入了即时编译器(JIT),大大提高了部分应用的执行效率。此后虽然不再有明显的性能提升,但是Google和厂商们一直都在优化Dalvik。事实上,如果你执行了Dalvik缓存清理,就会看到“安卓正在更新”(Android is upgrading)的提示,此时幕后就正在对dex文件进行深入优化,同时重建Dalvik缓存分区。

ART抛弃了JIT而转向AOT(预先编译)模式,会在启动过程中同样的“安卓正在更新”时开始生效,只不过需要更长时间。

如果查看这个时候的系统日志,就会发现新的ART文件格式“dex2oat”正在运行、编译成文件、建立Dalvik缓存。

I/art ( 615): DexFile_isDexOptNeeded cache file /data/dalvik-cache/data@app@com.google.android.apps.maps–2.apk@classes.dex does not exist for /data/app/com.google.android.apps.maps–2.apk

I/PackageManager( 615): Running dexopt on: com.google.android.apps.maps

I/dex2oat ( 951): dex2oat: /data/dalvik-cache/data@app@com.google.android.apps.maps–2.apk@classes.dex

W/dex2oat ( 951): Compilation of com.google.zxing.g.a.s[] com.google.zxing.g.a.s.f() took 126.362083ms

ART目前兼容ARMv7、x86、MIPS三种处理器架构,还不支持64位的ARMv8,而且从字节码到原生代码的转换暂时仅支持AOT编译,JIT模式得以后再说。这更加证明了ART现在的试验性质。

底层虚拟机的变化对安卓应用的性能、耗电量影响都是巨大的,ART又有什么变化呢?

安卓4.4 ART模式解读、性能对比

这里找来两部Nexus 5、两部Moto X,分别各自运行Dalvik、ART。运行时模式可以在设置-开发者选项里切换,而除了少部分应用之外,大多数都可以正常运行于ART。

安卓4.4 ART模式解读、性能对比

Nexus 5 AndEBench测试中,单线程下ART的速度有所提升,但是双线程、四线程不如Dalvik,显然在线程分派方面还不够好。

Caffeinemark是一款经典的Java测试程序,ART性能暴增了超过50%。Linpack也提升了几乎30%。

某厂商看到了Caffeinemark的对比后也赞叹不已,并表示Dalvik的潜力确实已经基本挖掘殆尽,ART是个很好地的方向。

安卓4.4 ART模式解读、性能对比

Moto X上使用了高通定制的Dalvik,AndEBench单线程、双线程表现基本不相上下,四线程模式无法运行,Caffeinemark则提升了不到20%。

事实证明,ART的确可以带来明显的性能提升,进一步优化后肯定还会更好,但是也有一些代价,必需需要占用更多存储空间,应用安装和系统启动时间会延长不少(AOT编译),不过我们相信这是值得的。

2 thoughts on “安卓4.4 ART模式到底是什么?性能有多强?

Author gravatar
jianpeng 2013 年 12 月 8 日, 下午 5:38

你这网站用啥免费软件编的?还是你自己编的?

Author gravatar
平板盒子网_平板电脑推荐 2013 年 12 月 8 日, 下午 6:01

wordpress

Comments are closed.