昨天我从内存和速度这两个维度比较了分歧的 JDK 版本和 OpenJ9 vs HotSpot。假如你问我,一个实践任务的服务于 REST 工具的 Spring Boot 使用顺序,所测试的内存部分是真实的。
速度/CPU 测试仍然...缺失。由于排序一些随机数组只是此中一个特定的测试。
今日我决议对 OpenJ9 和 Hotspot 用一个实践的基准测试实行更多的测试: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
在等候了很长一段工夫以后,基准完毕,我失掉了以下后果。
这个表权衡值是 ops/m,越高代表越好。依据硬件分歧,后果可能会有所分歧。
在大大多数状况下,HotSpot 比 OpenJ9 更快,在 crypto 和 derby 两种状况下,HotSpot 速度更快。看起来这是 HotSpot 正在做一些特殊的工作,而 J9(还)没有做?这对了解您能否正在处置大量暗码学使用顺序十分主要,例如高功能平安端点。
一个能让 OpenJ9 排第一的是 XML 校验。剖析与校验也是大大多数当代使用顺序中的主要构成部分,所以这多是 J9 在实践生产代码中的补偿了一些丧失。
如许就可以失掉一个真实的结论吗?我不这么以为。
真实的经验是:经过试验、丈量,你将会晓得,历来不克不及基于一些在线的基准来决议甚么。
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务