Excel不相邻列如何打印在一起-英雄云拓展知识分享
119
2023-11-07
【摘要】 本书摘自《深入理解 Java 虚拟机 JVM 高级特性与最佳实践(第3版)》一书中第1章,第4节,周志明著。
1.4.5 软硬合璧: BEA Liquid VM/Azul VM
我们平时所提及的“高性能Java 虚拟机”一般是指 HotSpot 、JRockit 、J9 这类在通用 硬件平台上运行的商用虚拟机,但其实还有一类与特定硬件平台绑定、软硬件配合工作的 专有虚拟机,往往能够实现更高的执行性能,或提供某些特殊的功能特性。这类专有虚拟 机的代表是 BEA Liquid VM和 Azul VM。
Liquid VM也被称为JRockit VE(Virtual Edition,VE),它是BEA 公司开发的可以直 接运行在自家 Hypervisor 系统上的JRockit 虚拟机的虚拟化版本, Liquid VM不需要操作系 统的支持,或者说它自己本身实现了一个专用操作系统的必要功能,如线程调度、文件系 统、网络支持等。由虚拟机越过通用操作系统直接控制硬件可以获得很多好处,如在线程 调度时,不需要再进行内核态/用户态的切换,这样可以最大限度地发挥硬件的能力,提升 Java 程序的执行性能。随着JRockit 虚拟机终止开发, Liquid VM项目也已经停止了。
Azul VM 是 Azul Systems 公司在 HotSpot 基础上进行大量改进,运行于Azul Systems 公司的专有硬件Vega 系统上的Java 虚拟机,每个 Azul VM实例都可以管理至少数十个 CPU 和数百GB 的内存的硬件资源,并提供在巨大内存范围内停顿时间可控的垃圾收集器 (即业内赫赫有名的PGC 和 C4 收集器),为专有硬件优化的线程调度等优秀特性。2010年 起,Azul 公司的重心逐渐开始从硬件转向软件,发布了自己的Zing 虚拟机,可以在通用 x86平台上提供接近于Vega系统的性能和一致的功能特性。
随着虚拟机技术的不断发展,Java 虚拟机变得越来越强大的同时也越来越复杂,要推 动在专有硬件上的Java 虚拟机升级发展,难以直接借助开源社区的力量,往往需要耗费更 高昂的成本,在商业上的缺陷使得专有虚拟机逐渐没落, Azul Systems公司最终也放弃了 Vega产品线,把全部精力投入到Zing 和 Zulu 产品线中。
Zing 虚拟机是一个从 HotSpot 某旧版代码分支基础上独立出来重新开发的高性能 Java 虚拟机,它可以运行在通用的 Linux/x86-64 平台上。Azul 公司为它编写了新的垃圾收集 器,也修改了HotSpot 内的许多实现细节,在要求低延迟、快速预热等场景中,Zing VM 都要比 HotSpot 表现得更好。Zing 的 PGC 、C4 收集器可以轻易支持TB 级别的 Java 堆内 存,而且保证暂停时间仍然可以维持在不超过10毫秒的范围里,HotSpot 要一直到 JDK 11 和JDK 12 的 ZGC 及 Shenandoah 收集器才达到了相同的目标,而且目前效果仍然远不如 C4 。Zing 的 ReadyNow! 功能可以利用之前运行时收集到的性能监控数据,引导虚拟机在启 动后快速达到稳定的高性能水平,减少启动后从解释执行到即时编译的等待时间。Zing 自 带的ZVision/ZVRobot 功能可以方便用户监控Java 虚拟机的运行状态,从找出代码热点到 对象分配监控、锁竞争监控等。Zing 能让普通用户无须了解垃圾收集等底层调优,就可以 使得Java 应用享有低延迟、快速预热、易于监控的功能,这是Zing 的核心价值和卖点,很 多Java 应用都可以通过长期努力在应用、框架层面优化来提升性能,但使用Zing 的话就可 以把精力更多集中在业务方面。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~