【CSDN 編者按】文作者通過(guò)多方調(diào)查,分析最新版本的 JAVA 并不一定提供最佳性能。
原文鏈接:https://talesfromthedatacenter.com/2023/06/what-version-of-java-gives-the-best-performance/
作者 | admin 譯者| 彎月
責(zé)編 | 夏萌
出品 | CSDN(ID:CSDNnews)
注意,Java 的性能受到多種因素的影響,在不同版本的軟件中可能會(huì)有不同的表現(xiàn)。出乎開(kāi)發(fā)人員和應(yīng)用程序所有者意料的是,最新版本的Java 并不一定提供最佳性能。
- 編譯器增強(qiáng):Java 每次發(fā)布新版本,都會(huì)改進(jìn)即時(shí)(JIT)編譯器。該編譯器負(fù)責(zé)在運(yùn)行時(shí)優(yōu)化字節(jié)碼,因此它的提升不僅可以更好地優(yōu)化代碼,而且還可以改進(jìn)內(nèi)存管理并提升特定類型應(yīng)用程序的性能。
- 垃圾收集算法:在 Java 中,垃圾收集器負(fù)責(zé)釋放不再使用的內(nèi)存。每個(gè)版本的 Java 都有可能修改垃圾收集算法,以提高垃圾收集的效率并最大限度地減少垃圾收集活動(dòng)造成的暫停。這些修改會(huì)極大地影響內(nèi)存密集型 Java 應(yīng)用程序的性能。
- JVM 調(diào)整:隨著 Java 虛擬機(jī)(JVM)實(shí)現(xiàn)的新版本發(fā)布,各個(gè)供應(yīng)商可以自行優(yōu)化和調(diào)整。這些優(yōu)化包括內(nèi)存管理、線程處理、同步機(jī)制或其他可以提高特定工作負(fù)載或場(chǎng)景性能的組件的變更。Oracle 針對(duì) Java 1.8 的性能增強(qiáng)就是一個(gè)很好的例子。
- 錯(cuò)誤修復(fù)和性能增強(qiáng):用戶經(jīng)常提供反饋和實(shí)際的使用場(chǎng)景,以幫助改進(jìn) Java 的新版本。通常,這類更新會(huì)修復(fù)錯(cuò)誤并增強(qiáng)性能,從而提高穩(wěn)定性和整體性能。
- 新功能和 API:開(kāi)發(fā)人員可以利用最新版的 Java 來(lái)提升增強(qiáng)應(yīng)用程序的性能,包括引入新功能、API 和庫(kù)。這些新功能和 API 可以提供更有效的方法來(lái)處理特定任務(wù),并幫助開(kāi)發(fā)人員更有效地優(yōu)化代碼。開(kāi)發(fā)人員可以利用這些新功能和 API 提高應(yīng)用程序的整體性能。
最近,我做了一些調(diào)查,最后獲得的結(jié)果非常令人驚訝!為了方便評(píng)估,我在Ampere Arm 服務(wù)器上對(duì)CPU 進(jìn)行了基本的檢查。我使用的操作系統(tǒng)是Oracle linux 8,而且還安裝了最新版本的OpenJDK 1.8、Oracle JDK 1.8、性能增強(qiáng)版的Oracle JDK 1.8、Oracle JDK 11 和Oracle JDK 17 進(jìn)行評(píng)估。在Oracle JDK 在該列表中出現(xiàn)了兩次,這是因?yàn)?022 年 10 月Oracle 發(fā)布了增加版的Oracle JDK 1.8,并承諾為舊版JDK 1.8 應(yīng)用程序提供JDK 17 的性能。Java SE 訂閱和OCI 提供了該包。
這個(gè)簡(jiǎn)單的測(cè)試的結(jié)果如下:
- 性 能增強(qiáng)版的Oracle 1.8 的性能最好,OpenJDK 最差,Oracle的 Performance JDK 大約快了 28%!對(duì)于應(yīng)用程序來(lái)說(shuō),這是一個(gè)巨大的飛躍!
- Oracle 的 JDK 17 僅慢了 2%,這種差異在一些系統(tǒng)上甚至不會(huì)被注意到。
- 鑒于 Java 提供的所有增強(qiáng)功能,我認(rèn)為 JDK 17 將成為新應(yīng)用程序的首選。

值得注意的是,雖然新版的Java 始終在努力提升性能,但在某些情況下,特定應(yīng)用程序或代碼可能會(huì)由于JVM 行為或其他因素的變化而出現(xiàn)性能下降的現(xiàn)象。因此,你應(yīng)該使用不同版本的Java 對(duì)應(yīng)用程序進(jìn)行測(cè)試和基準(zhǔn)測(cè)試以確定性能影響,并查明必要的優(yōu)化或調(diào)整。






