选择哪种Java虚拟机,HotSpot 还是OpenJ9?两者都是可调的开源JVM实现。HotSpot是一个成熟的JVM实现,最初由Sun Microsystems开发。由IBM开发的OpenJ9在业界的应用并不广泛,但近年来得到了普及。
基于DayTrader7基准测试应用程序研究,OpenJ9声称在启动时间、延迟、吞吐量和内存占用方面表现出色,其中三种经过微调的OpenJ9配置与默认热点进行了比较。
BellSoft的工程师已决定检查是否可以配置HotSpot,以使其显示可比或更好的性能结果。您可以在下面找到他们的测试摘要。
实验设置
我们使用原始研究中的DayTrader7应用程序作为基准。它不是一个微服务应用程序,而是在web服务器上启动的一个小整体,因此我们认为这种配置最为显著。我们还将Linux上的服务器类机器和Windows上的桌面类机器用作平台,并将OpenJDK 11用作JDK二进制文件:采用带有三个OpenJ9标志配置的OpenJDK构建,以及带有默认和调优热点的Liberica JDK。
重点是 启动时间 、 占用空间 、 延迟 和 吞吐量 。ApacheJMeter 5.4.1用于测量后三个指标。
我们的目标不是通过热点微调技巧生成合成性能数据,而是评估这个JVM实现的标准设置。
结果
启动
有几个参数有助于减少热点应用程序的启动。第一种是应用程序类数据共享或AppCDS。它允许将应用程序类放置在共享存档中,从而加快启动速度。此功能出现在热点1.5中,并在后续版本中得到了改进。例如,现在可以自动生成存档。激活AppCD需要以下标志