Java性能測(cè)試:OpenJDK vs. GraalVM vs. Amazon Corretto
Phoronix 網(wǎng)站使用 Phoronix Test Suite 對(duì)比了在 OpenJDK 8/11、GraalVM 20 與 Amazon Corretto JVM 幾個(gè) JVM 平臺(tái)中 Java 的基準(zhǔn)性能。
Phoronix Test Suite 是一個(gè)全面的測(cè)試和基準(zhǔn)測(cè)試平臺(tái)??捎糜?Linux、Solaris、macOS、Windows 和 BSD 系統(tǒng)的測(cè)試,套件內(nèi)包含多種維度的測(cè)試組件。
GraalVM 是 Oracle 在 HotSpot/OpenJDK JVM/JDK 的基礎(chǔ)上開發(fā)的虛擬機(jī),帶有其它附加功能;Amazon Corretto 是 Amazon 的多平臺(tái) OpenJDK 發(fā)行版,與上游 OpenJDK 相比,包括額外的性能增強(qiáng)和安全修復(fù)。此次對(duì)比測(cè)試在 Ryzen 9 3950X 上的 Ubuntu 19.10 中進(jìn)行,具體參數(shù)如下:
Java 2D 文本渲染測(cè)試中,GraalVM 20.0 性能最佳,尤其是 Java 8 構(gòu)建版本,而 Corretto 的性能與 OpenJDK 8 和 11 相似。
在 SciMark Java 微基準(zhǔn)測(cè)試中,OpenJDK 8 性能最佳,而 Corretto 8 和 GraalVM 20.0 都慢得多。
Java SciMark 的 Monte Carlo 測(cè)試中 GraalVM 20.0 大幅落后于其它幾個(gè)對(duì)比平臺(tái)??梢哉f,GraalVM 在 Java SciMark 測(cè)試中總體上非常慢。
用 Bork 進(jìn)行基于 Java 的文件加密,GraalVM 表現(xiàn)最佳。
在 Java DaCapo Benchmark H2 子測(cè)試中 OpenJDK 14 最快,而 Corretto 11 的性能與 OpenJDK 11 相似。
在大多數(shù)情況下,Amazon Correto 的性能往往非常接近上游 OpenJDK。
在 Apache HBase 基準(zhǔn)測(cè)試中,OpenJDK 8 和 GraalVM 20.0 Java 8 傾向于并列第一。
總結(jié)一下整個(gè)測(cè)試,從執(zhí)行的 32 個(gè)測(cè)試的幾何平均值來看,OpenJDK 8 上游實(shí)際上總體上表現(xiàn)最好,緊隨其后的是 GraalVM 20.0 Java8。而 Java 11 版本的 GraalVM 20.0 表現(xiàn)是最差的。Amazon Corretto 方面,版本 11 與上游的 OpenJDK 11 非常相似,但其 Java 8 實(shí)現(xiàn)與 Java 11 一樣表現(xiàn)不佳。
而如果只看測(cè)試中獲得第一的次數(shù),GraalVM 20.0 Java 8 的獲勝率最高(40.63%)。