toc
背景
Oracle JDK 开始收费后,大家都转移到了 OpenJDK,OpenJDK 包括 Java 类库和 JVM 虚拟机,默认的虚拟机是来自 Oracle 的 Hotspot,但是其实 JVM 还有其他的选择,OpenJ9 是 IBM 捐赠给 Eclipse 基金会的 JVM,作为 Java 老牌厂商,IBM 的实力还是不可小觑的,OpenJ9 具有很多有点,这些优点十分适合云环境,并且商业使用完全免费。
OpenJ9 的官网是:
https://www.eclipse.org/openj9/
OpenJ9 优点
直接引用官方网站的数据:
更小的启动内存消耗
更小的预热内存消耗
更快的启动时间
相同的吞吐量
更快的预热时间
一个不太严谨的测试
我有两个 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 即可。
玩得愉快。