Dalvik和ART虚拟机的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dalvik和ART虚拟机的区别相关的知识,希望对你有一定的参考价值。

参考技术A Dalvik特点

ART(Android Runtime 4.4引入)

ART应用启动快,运行快,但是耗费更多存储空间,安装时间长,总的来说ART功效就是空间换时间.

ART和Dalvik的比较

       从Android 4.4开始就已经支持并且可选则的在运行时用ART替代Dalvik。
       ART(Android RunTime)是Dalvik的下一个版本,Dalvik运行时的是字节码,且虚拟机的用途就是用来运行Android系统的应用程序。
       ART有相较于Dalvik有两大特色:
  (1)超前编译(AOT:Ahead-of-Time),主要用于提升速度和减少内存(没有JIT,当然会减少相应的内存开销)。
  (2)提升了垃圾回收性能。
       AOT意味着我们的app被一次性的编译成本地代码(native code),这种本地代码存储在手机上,在运行时是执行的高效的本地代码而不是字节码。但是因为解释器很慢(解释字节码时),所以虚拟机开发者发明了一个新的技术叫做Just-in-Time(即JIT)编译,这种技术将我们的代码飞快的编译为native coed。Dalvik就是典型的JIT虚拟机,但是JIT虚拟机的缺点在于:JIT编译器运行于我们在使用app的时候,也就是说只要我们在使用app,那么就伴随着JIT编译器的运行(想想都觉得对内存的消耗够大了。。。),这也就增加了内存潜在的压力。不过JIT编译器的优势在于:JIT编译器可以考虑将你正在使用的代码进行优化。
       AOT和JIT类似,但是它只运行一次----当app在安装的时候运行一次。虽然AOT缺乏优化代码的能力,但是它缺可以通过较少的编译来执行更广泛的优化过的代码。自然地,在开机时ART会比Dalvik要慢,因为他编译系统一些apk需要时间,但是一旦运行起来,ART就会比Dalvik要快了。
       值得一提的是,虽然在4.4上已经放出ART,但是并不是默认的选择,可以到设置>开发者选项>选择运行时间>使用ART。

以上是关于Dalvik和ART虚拟机的区别的主要内容,如果未能解决你的问题,请参考以下文章

JVM虚拟机与Android虚拟机

JVM虚拟机与Android虚拟机

安卓art和dalvik的区别

Dalvik 和 ART 有什么区别?深扒 Android 虚拟机发展史,真相却出乎意料!

深入理解ART虚拟机—虚拟机的启动

Android各版本虚拟机的Dexopt区别