黑马程序员技术交流社区
标题: ART:Google 兑现了提升 Android 性能的承诺 [打印本页]
作者: 黑妞~ 时间: 2014-7-8 09:43
标题: ART:Google 兑现了提升 Android 性能的承诺
Android 下一个版本将会有两个重大改变。其中一个是明显的改变,系统界面采用全新的 Material Design,另一个改变属于底层部分,但是也直接影响到用户体验。Google 将彻底抛弃 Davik,启动新的应用环境 ART(Android Runtime)。ART 能否解决长期困扰 Android 的卡顿问题?
架构ART 完全兼容 Dalvik 的字节码格式 dex,因此,开发者编写软件不会受到影响,也无需担心兼容性问题。ART 的一大变化是,它不仅支持即时编译(JIT),而且支持预先编译(AOT)。在 Dalvik 上,每次软件运行,都需从字节码编译为原生代码,ART 可以只编译一次。然后,软件每次运行时,执行编译好的原生代码。预先编译也为新的优化带来了可能性。同时,这也会明显改善电池续航,因为软件运行时不用编译了,从而减少了 CPU 的使用频率,降低了能耗。
ART 也有一些缺点。其中一个是,设备首次启动,以及应用的首次启动时间会变长,不过,Google 宣称说,这种差别不是很大,而且他们会在这方面努力,使其接近甚至超过 Dalvik。另一个缺点是原生代码占用空间更大,不过,现在设备的空间应该都足够。
垃圾回收
Android 虚拟机是自动内存管理。优点是,开发者无需担心内存管理,缺点是,开发者失去了控制权,依赖于系统本身的机制。Dalvik 的垃圾回收机制是造成系统卡顿的原因之一。在 Dalvik 虚拟机下,启动垃圾回收机制会造成两次暂停(一次在遍历阶段,一次在标记阶段)。所谓暂停,就是应用的所有线程都不再执行。如果暂停时间过长,应用渲染中就会出现掉帧。用户体验上来说,就是应用运行的时候出现卡顿。
Google 宣称,Neuxs 5 的平均暂停时间是 54ms,结果就是,每次垃圾回收启动,平均掉帧是 4 帧。如果应用编写的不好,情况会更加糟糕。Anandtech 测试了 FIFA 游戏。Dalvik 环境下,启动应用的几秒内,垃圾回收启动 9 次,应用暂停时间总和 603ms,总共掉帧是 214 帧。在 ART 下,情况有了极大改善。同样时间里,应用暂停时间总和是 12.364ms(4 次前台垃圾回收,2 次后台垃圾回收),总共掉帧是 63 帧。
ART 能够做到这一点,是因为应用本身做了垃圾回收的一些工作。垃圾回收启动后,不再是两次暂停,而是一次暂停。在遍历阶段,应用不需要暂停,而标记阶段的暂停时间也大大缩短,因为 Google 使用了一种新技术(packard pre-cleaning),在暂停前就做了许多事情,减轻了暂停时的工作量。Google 承诺说,他们已经把平均暂停时间降到了 3ms,远远超过 Dalvik 的垃圾回收。
与此同时,Google 还改进了内存分配系统,把分配速度加快了 10 倍。垃圾回收算法也进行了修改,以增强用户体验,避免应用被打断。
64 位支持
ART 支持 64 位系统,这会带来性能上的提升,加密能力的大幅改进,同时保持与现有 32 位应用的兼容性。与苹果不同的是,Google 使用了指针压缩,以避免转换到 64 位后,空间占用大幅增加,其虚拟机仍然是 32 位指针。
Google 宣称,现有 Play Store 上应用中,85% 都可以转移到 64 位,剩下的 15% 有原生代码,需要重新编译。总的来说,转移到 64 位应该会在短时间内完成。
总结
从许多方面来说,Google 兑现了其提升性能的承诺,解决了困扰 Android 的诸多问题。Android 的一些致命弱点,原因在于非原生应用和自动内存管理系统,ART 在这些方面做出了大量改进。总之,在应用的流畅度和性能方面,Android 终于可以与 iOS 一决高下了。
作者: 八零、玖羚 时间: 2014-7-8 09:58
沙发和板凳,google正在改变你我
作者: 且行且惜 时间: 2014-7-8 11:45
google真心不错
作者: zxtanshui 时间: 2014-7-8 22:39
厉害,不断改变不断提高
作者: 薛马顺 时间: 2014-7-9 08:31
革新才会进步与提升!!
作者: 一世独殇 时间: 2014-7-9 16:56
支持google!
作者: 死海古卷 时间: 2014-7-9 22:07
感觉没那没好吧
作者: jeromechen 时间: 2014-7-10 05:01
强力赞了,和ios一决高下
作者: XCodeRush 时间: 2014-7-10 14:23
必须的,要尊重市场嘛
作者: Ying0558 时间: 2014-7-11 11:48
真好!!~~~
作者: junly 时间: 2014-7-16 21:39
看的时候很激动!
作者: 死海古卷 时间: 2014-7-16 23:25
手机快变电脑了--
作者: 刘孝泽 时间: 2014-7-17 13:09
牛x 这个对android来说是一个福利
作者: 无所谓啦 时间: 2014-7-18 07:38
Where there`s a heimabi, there`s a me!
作者: 账号差点被盗 时间: 2014-7-19 22:34
相信未来的一天安卓必然一统天下
作者: lhtwm1 时间: 2014-8-11 16:53
试想一下,如果有一天,安卓和IOS都混不下去了,而另外会有一个全新的智能系统出现。那么是不是会有N多安卓IOS的兄弟重新开始
作者: lhtwm1 时间: 2014-8-11 16:54
试想一下,如果有一天,安卓和IOS都混不下去了,而另外会有一个全新的智能系统出现。那么是不是会有N多安卓IOS的兄弟重新开始
作者: 唐王潮 时间: 2014-9-28 08:46
相信谷歌,相信java
作者: chuck_heima 时间: 2014-11-23 20:51
厉害!!!
作者: sunspot 时间: 2014-12-28 21:53
长见识了
作者: qiezhiyi 时间: 2015-1-7 09:43
谷歌加油,软件功能越来越完善
作者: DK_bai 时间: 2015-3-24 21:54
Google确实兑现了其提升性能的承若
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |