JVM和Dalvik区别

来源:互联网 发布:域名紧急升级访问中 编辑:程序博客网 时间:2024/05/16 09:04

JVM和Dalvik区别


     1、Dalvik 基于寄存器,寄存器是CPU内部的一块内存空间,访问速度快,而 JVM 基于栈,栈是内存中的一块连续的存储空间,访问速度比寄存器要          慢。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
     2、Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。
     3、Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。
     4、不同于Java虚拟机运行java字节码( .java -> .class),Dalvik虚拟机运行的是其专有的文件格式DEX(Dalvik Executable)
         ( .java -> .class -> .dex),Dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。
     5、所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制

     6、Dalvik是一般由C或C++编写,JVM一般是C++或java编写

   7、如果JVM不小心死掉,则上面运行的所有Java程序都死掉,而Dalvik死掉了,只有一个对应的应用死掉,其他没有影响。

    













0 0
原创粉丝点击