插件化介绍二:jvm和dvm的区别

#####1、首要差别
Dalvik: 基于寄存器,编译和运行更快
JVM: 基于栈, 编译和运行较慢

#####2、字节码的区别
Dalvik: 执行.dex格式的字节码,是对.class文件去除冗余信息后生成,体积更小,加载更快。
JVM: 执行.class格式的字节码

####3、运行环境的区别

Dalvik : 一个应用启动都运行一个单独的虚拟机运行在一个单独的进程中
JVM: 只能运行一个实例, 也就是所有应用都运行在同一个JVM中

####4、类加载系统差别较大

#####.jar文件里面包含多个.class文件,每个.class文件里面包含了该类的头信息(如编译版本)、常量池、类信息、域、方法、属性等等,当JVM加载该.jar文件的时候,会加载里面的所有的.class文件,这样会很慢,而移动设备的内存本来就很小,不可能像JVM这样加载,所以它使用的不是.jar文件,而是.apk文件,该文件里面只包含了一个.dex文件,这个.dex文件里面将所有的.class里面所包含的信息全部整合在一起了,这样再加载就很快了。.class文件存在很多的冗余信息,dex工具会去除冗余信息,并把所有的.class文件整合到.dex文件中。减少了I/O操作,提高了类的查找速度.

###ART
#####1、虽然DVM比JVM要更快,但其速度仍然饱受诟病,于是谷歌工程师开发出了ART并在android5.0以后替代了DVM
#####2、dvm使用JIT来讲字节码转换成机器码,效率低
#####3、ART采用了AOT(ahead of time)预编译技术,执行速度更快.
#####4、由于采用了AOT技术ART会占用更多的应用安装时间和存储空间
#####5、类加载机制和DVM也有不同,程序运行时不需要再编译,提升了程序运行的速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值