文章目录
java的虚拟机发展
- Sun Classic VM
世界上第一款商用的虚拟机,java1.0发版的时候使用的虚拟机, 但其现在已经淘汰,技术非常落后,截止码字时间。只能使用纯解释器的方式来执行java代码,如果要使用git编译器,需要使用外挂。如果使用git编译器,其会完全结果虚拟机系统,解释器便停止工作了。 - Exact VM
- Exact Memory Management 准确试内存管理,jdk1.2的时候
- 编辑器和解释器混合工作以及两级即时编译器,只有高性能虚拟机的特性
- 只在Solaris平台发布
- 英雄气短,存在的时间比较短
- HotSpot VM
-
它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。
但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初并非由Sun公司开发,而是由一家名为“Longview Technologies”的小公司设计的;甚至这个虚拟机最初并非是为Java语言而开发的,它来源于Strongtalk VM,而这款虚拟机中相当多的技术又是来源于一款支持Self语言实现“达到C语言50%以上的执行效率”的目标而设计的虚拟机,Sun公司注意到了这款虚拟机在JIT编译上有许多优秀的理念和实际效果,在1997年收购了Longview Technologies公司,从而获得了HotSpot VM。 -
继承了sun公司最初的两款虚拟机的优点,热点代码检测、
-
随着java一起风靡全球。
-
- KVM (Kilobyte)
- 简单,轻量,高度可移植
- 嵌入式虚拟机,可以在手机平台运行
- JRockit
- BEA 2008被oracle收购。
- 世界上最快的java虚拟机(宣传语)
- 专注服务端应用
- 优势
- 垃圾收集器
- MissionControl服务套件
BEA JRockit Mission Control,用来诊断并指出根本原因,该工具的开销非常小,因此可以是用它来寻找生成环境中的系统内存泄漏。
BEA JRockit Mission Control(以下简称为JRMC)于2005年12月面世,并从JRockit R26.0.0版本开始捆绑了这个工具套件。它是一组以极低的开销来监控、管理和分析生产环境中的应用程序工具,它包括了三个独立的应用程序:内存泄漏监测器(Memory Leak Detector)、JVM运行时分析器(Runtime Analyzer) 和 管理控制台 (Management Console)
- J9
- IBM由生产
- 最初的名字是: IBM Technology for Java virtual Machine IT4j
- 类似于Hotspot,其开发目的是作为IBM各种Java产品的执行平台。
- Azul VM
- 高性能的Java虚拟机,在HotSpot的基础上进行改进
- 运行于Azul Systems公司的专有硬件Vega系统上的Java虚拟机,每个Azul VM实例都可以管理至少数十个CPU和数百GB内存的硬件资源,并提供在巨大内存范围内实现可控的GC时间的垃圾收集器、为专有硬件优化的线程调度等优秀特性。
- Liquid VM
- 高性能的Java虚拟机
- Liquid VM即是现在的JRockit VE(Virtual Edition),它是BEA公司开发的,可以直接运行在自家Hypervisor系统上的JRockit VM的虚拟化版本,Liquid VM不需要操作系统的支持,或者说它自己本身实现了一个专用操作系统的必要功能,如文件系统、网络支持等。由虚拟机越过通用操作系统直接控制硬件可以获得很多好处,如在线程调度时,不需要再进行内核态/用户态的切换等,这样可以最大限度地发挥硬件的能力,提升Java程序的执行性能。
- Dalvik VM
- 其是安卓平台核心的组成部分之一,Google公司自己设计用于Android平台的Java虚拟机
- 首要区别于java虚拟机,Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
- Mircrosoft JVM
- 只能运行在window平台下,是window平台下运行速度最快的虚拟机。
- 存在时间比较短。