JVM虚拟机种类

1.Sun Classic VM

1.现在此款虚拟机已经淘汰了,是第一款商用的虚拟机。
2.只能使用纯解释器的方式来执行Java代码。

2.Exact VM

1.Exact Memory Management准确式内存管理
2.编译器和解释器混合工作以及两级即时编译器
3.只在Solaris平台发布
4.英雄气短,就是存活时间短,被HotSpot取代

3.HotSpot VM

HotSpot VM的热点代码探测能力可以通过执行计数器找出最具有编译价值的代
码,然后通知JIT编译器以方法为单位进行编译。 如果一个方法被频繁调用,或方法中有效
循环次数很多,将会分别触发标准编译和OSR(栈上替换)编译动作。 通过编译器与解释器
恰当地协同工作,可以在最优化的程序响应时间与最佳执行性能中取得平衡,而且无须等待
本地代码输出才能执行程序,即时编译的时间压力也相对减小,这样有助于引入更多的代码
优化技术,输出质量更高的本地代码

4.KVM(Kilobyte)

KVM中的K是“Kilobyte”的意思,它强调简单、 轻量、 高度可移植,但是运行速度比较
慢。 在Android、 iOS等智能手机操作系统出现前曾经在手机平台上得到非常广泛的应用。

5.JRockit

1.JRockit VM曾经号称“世界上速度最快的Java虚拟机”
2.由于专注于服务器端应用,它可以不太关注程序启动速度,因此JRockit内部不包含解析器实现,全部代码都靠即时
编译器编译后执行。 除此之外,JRockit的垃圾收集器和MissionControl服务套件等部分的实
现,在众多Java虚拟机中也一直处于领先水平

6.J9

1.IBM J9 VM并不是IBM公司唯一的Java虚拟机,不过是目前其主力发展的Java虚拟机,IBM J9 VM原本是内部开发代号,
正式名称是“IBM Technology for Java Virtual Machine”,简称IT4J,只是这个名字太拗口了一点,普及程度不如J9.

2.与BEA JRockit专注于服务器端应用不同,IBM J9的市场定位与Sun HotSpot比较接近,它是一款设计上***从服务器端
到桌面应用再到嵌入式都全面考虑的多用途虚拟机***,J9的开发目的是作为IBM公司各种Java产品的执行平台,它的主
要市场是和IBM产品(如IBM WebSphere等)搭配以及在IBM AIX和z/OS这些平台上部署Java
应用。

7.Azul VM

Azul VM是Azul Systems公司在HotSpot基础上进行大量改进,运行于Azul Systems公司的
专有硬件Vega系统上的Java虚拟机,每个Azul VM实例都可以管理至少数十个CPU和数百GB
内存的硬件资源,并提供在巨大内存范围内实现可控的GC时间的垃圾收集器、 为专有硬件
优化的线程调度等优秀特性。 在2010年,Azul Systems公司开始从硬件转向软件,发布了自
己的Zing JVM,可以在通用x86平台上提供接近于Vega系统的特性。

8.Liquid VM

Liquid VM即是现在的JRockit VE(Virtual Edition),它是BEA公司开发的,可以直接运
行在自家Hypervisor系统上的JRockit VM的虚拟化版本,Liquid VM不需要操作系统的支持,
或者说它自己本身实现了一个专用操作系统的必要功能,如文件系统、 网络支持等。 由虚拟
机越过通用操作系统直接控制硬件可以获得很多好处,如在线程调度时,不需要再进行内核
态/用户态的切换等,这样可以最大限度地发挥硬件的能力,提升Java程序的执行性能。

9.Dalvik VM

1.Dalvik VM只能称做“虚拟机”,而不能称做“Java虚拟机”,它没有遵循Java虚拟机规范,不能直接执行Java
的Class文件,使用的是寄存器架构而不是JVM中常见的栈架构。
2.但是它与Java又有着千丝万缕的联系,它执行的dex(Dalvik Executable)文件可以通过Class文件转化而来,使用Java语
法编写应用程序,可以直接使用大部分的Java API等。

10.Microsoft JVM

1.微软公司为了在IE3中支持Java Applets应用而开发了自己的Java虚拟机,虽然这款虚拟机只有Windows平台的版本,却
是当时Windows下性能最好的Java虚拟机。

你可能感兴趣的:(虚拟机,JVM)