性能測試: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%)。