JDK 的另一个选择:OpenJDK with Eclipse OpenJ9

发布日期:2020年02月26日本文同步发表于公众号:

Cover

Oracle JDK 开始收费后,大家都转移到了 OpenJDK,OpenJDK 包括 Java 类库和 JVM 虚拟机,默认的虚拟机是来自 Oracle 的 Hotspot,但是其实 JVM 还有其他的选择,OpenJ9 是 IBM 捐赠给 Eclipse 基金会的 JVM,作为 Java 老牌厂商,IBM 的实力还是不可小觑的,OpenJ9 具有很多有点,这些优点十分适合云环境,并且商业使用完全免费。

OpenJ9 的官网是:

https://www.eclipse.org/openj9/

OpenJ9 优点

直接引用官方网站的数据:

https://www.eclipse.org/openj9/oj9_performance.html

更小的启动内存消耗

p1

更小的预热内存消耗

p2

更快的启动时间

p3

相同的吞吐量

p4

更快的预热时间

p5

一个不太严谨的测试

我有两个 Spring Boot 微服务,跑在阿里云一台 2C4G 的服务器上,我将 Hotspot JVM 换成 OpenJ9 后,有了肉眼可见的效果。

下面表格记录了启动时间和内存占用数据。

版本:

  • Hotspot:jdk-11.0.5+10
  • OpenJ9:jdk-11.0.6+10_openj9-0.18.1

服务 A

测试项 Hotspot OpenJ9
启动时间 9.473s 6.008s
启动后内存占用 162M 100M
工作时内存占用 209M 145M

服务 B

测试项 Hotspot OpenJ9
启动时间 10.967s 8.155s
启动后内存占用 207M 138M
工作时内存占用 259M 188M

再次说明,这个测试不严谨,但是数字变化很明显,可供参考。

如何获取

Oracle JDK 收费后,最好用的 JDK 分发版是 AdoptOpenJDK,可以到 https://adoptopenjdk.net/ ,下载 OpenJDK with OpenJ9。

注意在下载页 Choose a JVM 的时候,选择 OpenJ9 即可。

AdoptOpenJDK

玩得愉快。