Android 虚拟机演进之争:Dalvik vs ART
2023-09-17 18:43:55
Android 虚拟机的演进
Android 虚拟机是 Android 系统的核心组件,负责执行 Android 应用中的字节码。在 Android 系统的发展历史中,Android 虚拟机经历了从 Dalvik 虚拟机到 ART 虚拟机的演变。
Dalvik 虚拟机
Dalvik 虚拟机是 Android 系统早期使用的虚拟机,它采用解释执行的方式。所谓解释执行,是指虚拟机在执行字节码时,逐行读取字节码,并根据字节码中的指令对操作数进行相应的操作。解释执行的方式简单易实现,但执行效率较低。
ART 虚拟机
ART 虚拟机是 Android 系统目前使用的虚拟机,它采用编译执行的方式。所谓编译执行,是指虚拟机在执行字节码之前,先将字节码编译成机器码,然后执行机器码。编译执行的方式比解释执行的方式执行效率更高,但编译过程会消耗一定的时间。
Dalvik 虚拟机和 ART 虚拟机的对比
Dalvik 虚拟机和 ART 虚拟机在执行效率、内存占用、功耗等方面存在着一些差异。
执行效率
在执行效率方面,ART 虚拟机优于 Dalvik 虚拟机。这是因为 ART 虚拟机采用编译执行的方式,而 Dalvik 虚拟机采用解释执行的方式。编译执行的方式比解释执行的方式执行效率更高,因此 ART 虚拟机在执行字节码时速度更快。
内存占用
在内存占用方面,ART 虚拟机也优于 Dalvik 虚拟机。这是因为 ART 虚拟机在编译字节码时,会对字节码进行优化,从而减少了字节码的大小。此外,ART 虚拟机还采用了内存管理机制,可以回收不再使用的内存,从而降低了内存占用。
功耗
在功耗方面,ART 虚拟机也优于 Dalvik 虚拟机。这是因为 ART 虚拟机在执行字节码时,采用了更为高效的算法,从而降低了功耗。
ART 虚拟机相对于 Dalvik 虚拟机的优势
ART 虚拟机相对于 Dalvik 虚拟机具有以下优势:
- 执行效率更高:ART 虚拟机采用编译执行的方式,而 Dalvik 虚拟机采用解释执行的方式。编译执行的方式比解释执行的方式执行效率更高,因此 ART 虚拟机在执行字节码时速度更快。
- 内存占用更低:ART 虚拟机在编译字节码时,会对字节码进行优化,从而减少了字节码的大小。此外,ART 虚拟机还采用了内存管理机制,可以回收不再使用的内存,从而降低了内存占用。
- 功耗更低:ART 虚拟机在执行字节码时,采用了更为高效的算法,从而降低了功耗。
结语
ART 虚拟机相对于 Dalvik 虚拟机具有明显的优势,因此在 Android 系统的发展中,ART 虚拟机逐渐取代了 Dalvik 虚拟机。目前,ART 虚拟机已经成为 Android 系统的默认虚拟机。