开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
OpenJ9 和 HotSpot 的对比 Part 2 - 技术翻译 - 开源中国社区

OpenJ9 和 HotSpot 的对比 Part 2 【已翻译100%】

标签: OpenJ9 Java
oschina 推荐于 3个月前 (共 4 段, 翻译完成于 05-30) 评论 0
收藏  
2
推荐标签: OpenJ9 Java 待读

简介

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

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

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

Tocy
 翻译得不错哦!

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

Tocy
 翻译得不错哦!

测试

这些测试中使用的 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
kevinlinkai
 翻译得不错哦!

测试结果

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

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

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

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

结论

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

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

kevinlinkai
 翻译得不错哦!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
评论(0)
Ctrl/CMD+Enter

暂无网友评论
顶部