做者:局長
https://www.oschina.net/news/...
OpenJDK 14 與 OpenJDK 8 及多個主要版本的性能基準測試對比。java
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 新特性教程,都是乾貨。
推薦去個人博客閱讀更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
生活很美好,明天見~