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