• Android DalivkVM与JVM的比较


    JVM 与 DalivkVM的区别

    Android 为什么还有搞一个Dalivk虚拟机,不是已经就有Java虚拟机了吗,为什么还要专门搞一个Dalivk虚拟机呢?

    答:
      1.以前Java是Sun公司的,后来成为Oracle公司的了,有版权问题,不能使用JVM;
      2.Java虚拟机在移动设备上,运行效率低,如果运行效率不低,J2ME早火了;

    JVM与DalivkVM的比较

    JVM:将很多.java文件编译成.class文件,—-> 然后将很多.class文件打包成.jar文件;

    DalivkVM:将很多.java文件编译成.class文件,—-> 然后将很多.class文件处理成.dex文件;

    区别一:java虚拟机有个特点只认识.class文件,DalivkVM只认识.dex文件;

    区别二:java虚拟机的.jar文件里面有很多的.class文件,而DalivkVM中的.dex文件 就只有一个文件,不在是多个文件的概念了

        例如:上传一万个文件到百度云速度非常慢,而把一万个文件打包成一个文件,上传速度快很多倍,就是这个道理;

    区别三:JVM与DalivkVM再数据存储方面的比较:
    java虚拟机运行时数据是存储在推/栈中的,注意:堆栈是存储区域是内存;
    DalivkVM运行时数据是存储在寄存器的,注意:寄存器是在CPU上面的临时存储区域;

    总结:CPU在运行的时候是用自己寄存器的快,还是去内存拿去快,当然是寄存器的快,所有性能就快起来了。

    区别四:据我了解,Google 为了DalivkVM的性能提升,还做了一些列的优化,例如:对常量池的优化,.dex文件与.jar文件区别非常大,.dex文件做了一些列的公共抽取等等。

  • 相关阅读:
    高效 JavaScript
    什么是QName【转】
    gson的简单使用方法
    SWT的FormLayout
    SWT/JFace常用组件容器类
    更改swing应用程序标题栏默认图标
    面试也是自己对自己的面试
    关于Android图片cache处理方法
    【Java】_2_Java程序入门第二课
    【算法和数据结构】_9_线性结构_队列_续_1
  • 原文地址:https://www.cnblogs.com/android-deli/p/10092165.html
Copyright © 2020-2023  润新知