Categories
科技報導

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者



OpenJDK 14 已於近日 GA,其在性能方面是否有改進、以及有哪些改進引起了不少開發者的關注。本文將會介紹通過運行新的基準測試以考察從
OpenJDK 8 至 14 的所有主要發行版本,同時考察跨多個工作負載的 JVM 性能,以及 OpenJDK 14 與 JVM
先前版本相比性能如何。

此次測試通過在被測試的每個發行版上使用相同的 Java 字節碼編譯的 Java 程序來查看 JVM 的性能,並使用被測軟件包的參考/上游編譯版本。為了保證測試受干擾的因素將降至​​最低,每次都使用相同的選項,除了交換用於測試每個發行版的 OpenJDK x86_64 Linux 構建之外,沒有進行任何其他更改。

通過使用 Phoronix 的測試套件,測試內容包含從 SPECjbb 到 Java 2D 工作負載。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 1

測試環境以及測試機器配置:

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 2

首先通過使用Java 2D 基準測試對Java 圖形管道的性能進行壓測,可以看到文本渲染性能一直穩步提升,直到第12 版達到最高點,然後逐漸下降為目前13 和14 的水平,與OpenJDK 8 比較相似。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 3

而在 Java 2D 的圖像渲染性能方面,它們的水平基本保持一致,但是 OpenJDK 14 以微弱的的性能優勢成為了最好性能的那個。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 4

這裡還測試了使用矢量圖形的渲染效果,水平基本保持一致。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 5

通過進行非常基本的 Java SciMark 微基準測試,可以看到 OpenJDK 8 目前為止是最快的,並且自 OpenJDK 9 至 14 以來,性能基本上持平。 OpenJDK 的運行速度約為 OpenJDK 8 的 88%。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 6

通過使用 Java Bork 文件加密軟件包進行測試,在經過測試的版本中,性能基本上沒有變化。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 7

自OpenJDK 8 以來,DaCapo 的H2 基準被建模為類似於JDBCbench 的內存中(in-memory)基準,其性能得到了很好的提升,與此前的版本相比,OpenJDK 14 再次以微弱的優勢獲得了第一名。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 8

可以看到,基於 Python Pybench 的 Jython 基準測試也是 OpenJDK 8 擁有最佳成績的眾多案例之一。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 9

在運行 Daytrader 基準測試的 Tradebeans 測試中,OpenJDK 14 再度以微弱的優勢拿下最佳的成績。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 10

就像打乒乓球一樣,Renaissance 的 Scala Dotty 基準測試提供了一個類似的例子,說明 OpenJDK 的性能也會上下波動。在此次測試中,OpenJDK 14 又比最近的版本好一些。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 11

在其他一些 Renaissance 基準測試中,OpenJDK 11〜12 的性能反而最差,而 OpenJDK 14 提供的性能與 OpenJDK 8 類似。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 12

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 13

在使用 Jenetics+Futures 遺傳算法的 Renaissance 基準測試中,所有版本的性能基本保持一致。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 14

通過觀察使用 Apache HBase 進行的這幾個基準測試,可以發現 OpenJDK 8 運行最快,或者這幾個 Java 版本的性能基本持平。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 15

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 16

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 17

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 18

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 19

在使用 SPECjbb 進行的基準測試中 ,OpenJDK 8 是迄今為止最快且明顯拉開距離的版本。自版本 11 起,OpenJDK 的 SPECjbb 性能有所提高,不過在運行 Ubuntu Linux 的 AMD Ryzen 9 3950X 系統上,任何版本的速度均未達到 OpenJDK 8 的速度。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 20

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 21

結論:

當對所有執行的 Java 基準測試結果取幾何平均值時,OpenJDK 8 毫無疑問是最快的 Java 版本。業界經常聽到有關 OpenJDK 8 仍可提供最佳性能的消息,以及為什麼英特爾的 Clear Linux 在有眾多選擇的情況下仍堅持該版本的原因。從本文的測試結果來看,這不足為奇。

好消息是,從這種幾何意義上來看,OpenJDK 14 是經過測試的發行版中第二快的版本。與之前的版本相比,其領先優勢雖然很小,但整體來看畢竟是在保持進步。

OpenJDK 14 性能保持提升 但 OpenJDK 8 仍是最強王者 22