记录Java虚拟机的发展历程,说不定你的项目就有可能需要这款虚拟机特性
名称 | 特性/简介 |
---|
Liquid VM | 及是现在的 JRockit VM ,它是BEA公司开发的 直接运行在自家的Hypervisor系统上的 JRockit VM的虚拟化版本 Liquid VM不需要操作系统的支持,他自己实现了专有操作系统的必要功能,如:文件系统、网络支持等 |
Azul VM | Azul Systems公司在HotSpot VM基础上进行大量改进,运行于公司专有硬件Vega系统上的 Java虚拟机 每个Azul VM实例都可以管理至少十个CPU和数百GB内存的硬件资源,实现在巨大内存范围内可控的GC时间的垃圾收集器,专有硬件的线程调度等优秀特征 |
IBM J9 VM | 市场定位于Sun HotSpot VM接近 设计上从服务器端到桌面应用到嵌入式都全面考虑 开发目的是作为IBM公司各种Java产品的执行平台 |
JRockit VM | 曾号称 “世界上速度最快的Java虚拟机” IBM公司在2002年从 Appeal Virtual Machines 公司收购的虚拟机 一款专门为服务器硬件和服务器端应用场景高度优化的虚拟机 内部不包含解析器实现,所有代码靠及时编译器编译后执行 垃圾收集器和MissionControl服务套件等在众多虚拟机中一直处于领先水平 |
Maxine VM | 和 JavaInJava 非常类似 项目与2005年开始至今仍在发展中 运行效率已接近HotSpot Client VM |
JavaInJava | Sun于1997~1998年研发的一个实验性虚拟机 试图用Java语言实现Java语言本身的运行环境,即 “元循环” |
Squawk VM | Sun公司开发、运行在Sun SPOT,一种手持WiFi设备上,也曾用于JavaCard 一个Java代码比重很高的嵌入式虚拟机实现,类加载器,字节码校验器、垃圾回收器、解释器、编译器和线程调度都是Java语言本身完成的,仅用C语言编写设备IO和必要本地代码 |
CDC-HI VM、CLDC-HI VM | CDC/CLDC是整个 JavaME 的重要支柱 |
KVM | K是“Kilobyte”,强调简单、轻量、高度可移植,但运行速度慢 曾在手机操作系统得到广泛应用 |
Sun HotSpot VM | 目前使用范围最广的Java虚拟机 最初由 Longview Technologies 公司设计,并非为Java语言开发的,源于Strongtalk VM Sun在1997年收购了 Longview Technologies 公司,从而获得 Sun HotSpot VM 继承了之前二款虚拟机的优秀特点,也有自己许多的新技术优势 2006年JavaOne大会,Sun宣布Java开源,并随后一年陆续将JDK各部分在GPL协议下公开源码,其中包含Sun HotSpot VM |
Exact VM | 曾在Solaris平台发布 执行系统已具备现代高性能虚拟机雏形,如:两级及时编译器、编译器与解释器混合工作模式等 Exact VM因使用准确式内存管理而得名,提升了执行性能 虽然Exact VM相对Classic Vm先进了许多,但它在很短暂的时间就被更为优秀的HotSpot VM取代,甚至没有来得及发布Windows,Linux平台的商用版本 |
Sun Classic Vm | “世界上第一款商用Java虚拟机” 1996年1月23日,Sun公司发布的JDK1.0,Java语言首次拥有正式运行环境 使用纯解释器方式,来执行Java代码,如果使用JIT编译器,就必须外挂 本阶段的虚拟机使用JIT编译器输出本地代码,执行效率和传统的C/C++程序有很大差距,“Java语言很慢”的形象就在这时树立起来了 在JDK1.2之前是SunJDK中唯一的虚拟机,到JDK1.3和HotSpot VM并存,JDK1.4时才完全退出商用虚拟机和Exact VM一起进入Sun Labs Research VM |