JDK 14 性能提升,但 JDK 8 仍是最強王者!


作者:局長
https://www.oschina.net/news/114247/openjdk-14-n-8-benchmark

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 工作負載。

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

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

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

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

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

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

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

可以看到,基於 Python Pybench 的 Jython 基准測試也是 OpenJDK 8 擁有最佳成績的眾多案例之一。推薦閱讀:Java 8 Stream,性能也牛逼么?

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

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

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

在使用 Jenetics+Futures 遺傳算法的 Renaissance 基准測試中,所有版本的性能基本保持一致。Java 14 令人期待的 5 大新特性,推薦大家看下。關注微信公眾號:Java技術棧,在后台回復:java,可以獲取我整理的 N 篇最新 Java 新特性教程,都是干貨。

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

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

結論:

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

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

關注微信公眾號:Java技術棧,在后台回復:java,可以獲取我整理的 N 篇最新 Java 新特性教程,都是干貨。

推薦去我的博客閱讀更多:

1.Java JVM、集合、多線程、新特性系列教程

2.Spring MVC、Spring Boot、Spring Cloud 系列教程

3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程

4.Java、后端、架構、阿里巴巴等大廠最新面試題

生活很美好,明天見~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM