【jvm】jvm发展历程
目录 一、Sun Classic VM 二、Exact VM 三、HotSpot VM 四、JRockit 五、J9 六、KVM、CDC、CLDC 七、Azul VM 八、Liquid VM 九、Apache Harmony 十、Microsoft JVM 十一、Taobao JVM 十二、Dalvik VM
一、Sun Classic VM
1.1996年java1.0版本,sun公司发布了sun classic vm虚拟机 2.是世界上第一款商用java虚拟机 3.jdk1.4被完全淘汰 4.内部只提供解释器 5.如果使用JIT编译器,则需要进行外挂。一旦使用了JIT编译器,JIT会接管虚拟机的执行系统。解释器就不再工作。解释器和编译器不能配合工作 6.现在hotspot内置了此虚拟机
二、Exact VM
1.为了解决Sun Classic VM的问题,jdk1.2时,sun提供了此虚拟机 2.exact memory management:准确式内存管理 3.也叫Non-Conservative/Accurate Memory Management 4.虚拟机可以知道内存中某个位置的数据具体是什么类型 5.具备现代高性能虚拟机的雏形 6.热点探测 7.编译器与解释器混合工作模式 8.只在solaris平台短暂使用,其他平台上还是classic vm 9.最终被hotspot虚拟机替代
三、HotSpot VM
1.最初由一家名为“Longview Technologies”的小公司设计 2.1997年被sun收购,2009年,sun被甲骨文收购 3.jdk1.3时,hotspot vm成为默认虚拟机 4.目前hotspot占有绝对的市场地位 5.广泛使用的jdk6和使用比例较多的jdk8,默认的虚拟机都是hotspot 6.sun/oracle jdk和open jdk的默认虚拟机 7.从服务器、桌面到移动端、嵌入式都有应用 8.hotspot的意思就是它的热点探测技术 9.通过计数器找到最具编译价值代码,触发即时编译或栈上替换(对象不一定都需要创建在堆空间中,也可以在栈上分配对象) 10.通过编译器和解释器协同工作,在最优化的程序响应时间与最佳执行性能中取得平衡
四、JRockit
1.EA公司的产品,专注于服务器端应用 2.服务器端可以不关注程序启动速度,JRockit内部不包含解释器实现,全部代码都靠及时编译器编译后执行 3.大量的行业基准测试显示,JRockit JVM是世界上最快的JVM 4.使用JRockit产品,客户已经体验到了显著的性能提高(一些超过了70%)和硬件成本的减少(达50%) 5.优势:全面的java运行时解决方案组合,JRockit面向延迟敏感型应用的解决方案JRockit Real Time提供以毫秒或微妙级的JVM响应时间,适合财务、军事指挥、电信网络的需要;MissionControl服务套件,是一组以极低的开销来监控、管理和分析生产环境中的应用程序的工具 6.2008年,BEA被Oracle收购 7.Oracle表达了整合两大优秀虚拟机的工作,大致在jdk8中完成。整合的方式是在hotspot的基础上,移植JRockit的优秀特性 8.高斯林:目前就职于谷歌,研究人工智能和水下机器人
五、J9
1.全称:IBM Technology for Java Virtual Machine,简称IT4J,内部代号:J9 2.市场定位与Hotspot接近,服务器端、桌面应用、嵌入式等多用途VM 3.广泛用于IBM的各种java产品 4.目前是最有影响力的三大商用虚拟机之一,也号称是世界上最快的java虚拟机 5.2017年左右,IBM发布了开源J9 VM,命名为OpenJ9,交给Eclipse基金会管理,也称为Eclipse OpenJ9
六、KVM、CDC、CLDC
1.oracle在java me产品上的两款虚拟机为:CDC/CLDC HotSpot Implementation VM 2.KVM(Kilobyte)是CLDC-HI早期产品 3.目前移动领域低位尴尬,手机被Android和ios瓜分 4.KVM简单、轻量、高度可移植性,面向更低端的设备上还有一定的市场,智能控制器、传感器、老人机、经济欠发达地区的功能手机 5.所有虚拟机的原则:一次编译,到处运行
七、Azul VM
1.Azul VM和BEA Liquid VM是与特定硬件平台绑定、软硬件配合的专有虚拟机 2.Azul VM是Azul System公司在HotSpot基础上进行大量改进,运行于Azul System公司的专有硬件Vega系统上的java虚拟机 3.每个Azul VM实例都可以管理至少数十个CPU和数百GB内存的硬件资源,并提供在巨大内存范围内实现可控的GC时间的垃圾收集器、专有硬件优化的线程调度等优秀特性 4.2010年,Azul System公司开始从硬件转向软件,发布了自己的Zing JVM,可以在通用x86平台上提供接近于Vega系统的特性
八、Liquid VM
1.高性能java虚拟机中的战斗机 2.BEA公司开发的,直接运行在自家Hypervisor系统上 3.Liquid VM即是现在的JRockit VE(Virtual Edition),Liquid VM不需要操作系统的支持,或者说它本身实现了一个专用操作系统的必要功能,如线程调度、文件系统、网络支持等 4.随着JRockit虚拟机终止开发,Liquid VM项目也停止
九、Apache Harmony
1.Apache也曾经推出过与JDK1.5和JDK1.6兼容的java运行平台Apache Harmony 2.它是IBM和Intel联合开发的开源JVM,受到同样开源的OpenJDK的压制,Sun坚决不让Harmony获得JCP认证,最终于2011年退役,IBM转而参与OpenJDK 3.虽然目前并没有Apache Harmony被大规模商用的案例,但它的Java类库代码吸纳进了Android SDK
十、Microsoft JVM
1.微软为了在IE3浏览器中支持Java Applets,开发了Microsoft JVM 2.只能在window平台下运行。的确是当时Windows下性能最好的java vm 3.1997年,sun以侵犯商标、不正当竞争罪名指控微软成功,赔了sun公司很多钱。微软在windowsXP SP3中抹掉了VM。现在windows上安装的jdk都是HotSpot
十一、Taobao JVM
1.由AliJVM团队发布。阿里是国内使用java最强大的公司,覆盖云计算、金融、物流、电商等众多领域,需要解决高并发、高可用、分布式的复合问题。有大量的开源产品。 2.基于OpenJDK开发了自己的定制版本AlibabaJDK,简称AJDK,是整个阿里Java体系的基石 3.基于OpenJDK HotSpot VM发布的国内第一个优化、深度定制且开源的高性能服务器版Java虚拟机 4.创新的GCIH(GC invisible heap)技术实现了off-heap,即将生命周期较长的java对象从heap中移到heap之外,并且GC不能管理GCIH内部的java对象,以此达到降低GC的回收频率和提升GC的回收效率的目的 5.GCIH中的对象还能够在多个Java虚拟机进程中实现共享 6.使用crc32指令实现JVM intrinsic降低JNI的调用开销 7.PMU hardware的java profiling tool和诊断协助功能 8.针对大数据场景的ZenGC 9.taobao vm应用在阿里产品上性能高,硬件严重依赖intel的cpu,损失了兼容性,但提高了性能 10.目前已经在淘宝、天猫上线,把Oracle官方的JVM版本全部替换了
十二、Dalvik VM
1.骨骼开发的,应用于Android系统,并在Android2.2中提供了JIT,发展迅猛 2.Dalvik VM只能称作虚拟机,而不能称作java虚拟机,没有遵循java虚拟机规范 3.不能直接执行java的class文件 4.基于寄存器架构,不是jvm的栈架构 5.执行的是编译以后的dex(Dalvik Executable)文件。执行效率比较高 6.执行的dex(Dalvik Executable)文件可以通过class文件转化文件,使用java语言编写应用程序,可以直接使用大部分的java api等 7.Android 5.0使用支持提前编译(Ahead Of Time Compilation, AOT)的ART VM替换Dalvik VM
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29595.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!