转载

OpenJ9 和 HotSpot 的对比 Part 2

简介

昨天我从 内存速度 这两个维度比较了不同的 JDK 版本以及  OpenJ9 vs  HotSpot 。如果你问我,一个实际工作的服务于 REST 对象的 Spring Boot 应用程序,所测试的内存部分是真实的。

速度/CPU 测试依然...缺失。因为排序一些随机数组只是其中一个特定的测试。

今天我决定对 OpenJ9 和 Hotspot 用一个实际的基准测试进行更多的测试: SPECjvm2008。

SPECjvm2008

SPEC (标准性能评估公司)有几个定义良好的基准和测试,其中包括一个名为  SPECjvm2008  的老版 JVM 基准测试。这是一个详尽的基准测试事项,如压缩、编译、XML 解析等等。我决定下载这个并且给它一个与 OpenJ9 和 HotSpot 的开关。这应该是一个更公正的比较。

最初我遇到了一些问题,其中一些测试对 Java 8 不起作用,并且有些测试甚至不能在 Java 9+ 上启动。但最终我通过使用以下参数剔除了几个基准并使其正常工作:

java -jar SPECjvm2008.jar startup.helloworld startup.compiler.compiler  startup.compress startup.crypto.aes startup.crypto.rsa startup.crypto.signverify startup.mpegaudio startup.scimark.fft startup.scimark.lu startup.scimark.monte_carlo startup.scimark.sor startup.scimark.sparse startup.serial startup.sunflow startup.xml.validation compiler.compiler compress crypto.aes crypto.rsa crypto.signverify derby mpegaudio scimark.fft.large scimark.lu.large scimark.sor.large scimark.sparse.large scimark.fft.small scimark.lu.small scimark.sor.small scimark.sparse.small scimark.monte_carlo serial sunflow xml.validation

测试

这些测试中使用的 Docker 镜像都是 OpenJDK8 和 Java 8,但其中一个带有 HotSpot ,另一个带有  OpenJ9。

  • adoptopenjdk/openjdk8

  • adoptopenjdk/openjdk8-openj9

我再次启动 Docker 镜像,目录链接到包含 SPEC 基准的主机:

  • 启动镜像:

docker run -it -v /Projects/SPECjvm2008:/app/SPECjvm2008 adoptopenjdk/openjdk8-openj9 /bin/bash
  • 进入正确目录:

cd /app/SPECjvm2008
  • 运行(工作)测试:

java -Xmx600m -jar SPECjvm2008.jar startup.helloworld startup.compiler.compiler  startup.compress startup.crypto.aes startup.crypto.rsa startup.crypto.signverify startup.mpegaudio startup.scimark.fft startup.scimark.lu startup.scimark.monte_carlo startup.scimark.sor startup.scimark.sparse startup.serial startup.sunflow startup.xml.validation compiler.compiler compress crypto.aes crypto.rsa crypto.signverify derby mpegaudio scimark.fft.large scimark.lu.large scimark.sor.large scimark.sparse.large scimark.fft.small scimark.lu.small scimark.sor.small scimark.sparse.small scimark.monte_carlo serial sunflow xml.validation

测试结果

在等待了很长一段时间之后,基准结束,我得到了下列结果。

OpenJ9 和 HotSpot 的对比 Part 2

这个表衡量值是 ops/m,越高代表越好。根据硬件不同,结果可能会有所不同。

在大多数情况下,HotSpot 比 OpenJ9 更快,在 crypto  和  derby  两种情况下, Hot Spot  速度更快。看起来这是 HotSpot 正在做一些特别的事情,而 J9(还)没有做?这对了解您是否正在处理大量密码学应用程序非常重要,例如高性能安全端点。

一个能让 OpenJ9  排第一的是  XML  校验。解析与校验也是大多数现代应用程序中的重要组成部分,所以这可能是 J9 在实际生产代码中的弥补了一些损失。

结论

这样就能得到一个真正的结论吗?我不这么认为。

真正的教训是:通过实验、测量,你将会知道,从来不能基于一些在线的基准来决定什么。

原文  https://www.oschina.net/translate/openj9-hotsport-specjvm2008
正文到此结束
Loading...