Java性能测试:OpenJDK vs. GraalVM vs. Amazon Corretto
扫描二维码
随时随地手机看文章
Phoronix 网站使用 Phoronix Test Suite 对比了在 OpenJDK 8/11、GraalVM 20 与 Amazon Corretto JVM 几个 JVM 平台中 Java 的基准性能。
Phoronix Test Suite 是一个全面的测试和基准测试平台。可用于 Linux、Solaris、macOS、Windows 和 BSD 系统的测试,套件内包含多种维度的测试组件。
GraalVM 是 Oracle 在 HotSpot/OpenJDK JVM/JDK 的基础上开发的虚拟机,带有其它附加功能;Amazon Corretto 是 Amazon 的多平台 OpenJDK 发行版,与上游 OpenJDK 相比,包括额外的性能增强和安全修复。此次对比测试在 Ryzen 9 3950X 上的 Ubuntu 19.10 中进行,具体参数如下:
Java 2D 文本渲染测试中,GraalVM 20.0 性能最佳,尤其是 Java 8 构建版本,而 Corretto 的性能与 OpenJDK 8 和 11 相似。
在 SciMark Java 微基准测试中,OpenJDK 8 性能最佳,而 Corretto 8 和 GraalVM 20.0 都慢得多。
Java SciMark 的 Monte Carlo 测试中 GraalVM 20.0 大幅落后于其它几个对比平台。可以说,GraalVM 在 Java SciMark 测试中总体上非常慢。
用 Bork 进行基于 Java 的文件加密,GraalVM 表现最佳。
在 Java DaCapo Benchmark H2 子测试中 OpenJDK 14 最快,而 Corretto 11 的性能与 OpenJDK 11 相似。
在大多数情况下,Amazon Correto 的性能往往非常接近上游 OpenJDK。
在 Apache HBase 基准测试中,OpenJDK 8 和 GraalVM 20.0 Java 8 倾向于并列第一。
总结一下整个测试,从执行的 32 个测试的几何平均值来看,OpenJDK 8 上游实际上总体上表现最好,紧随其后的是 GraalVM 20.0 Java8。而 Java 11 版本的 GraalVM 20.0 表现是最差的。Amazon Corretto 方面,版本 11 与上游的 OpenJDK 11 非常相似,但其 Java 8 实现与 Java 11 一样表现不佳。
而如果只看测试中获得第一的次数,GraalVM 20.0 Java 8 的获胜率最高(40.63%)。