Java 11 究竟比8 快了多少?看看這個基準測試
開源規劃調度引擎OptaPlanner官網發布了一個Java 11 GC性能基準測試報告。當前使用量最大的Java版本是8,所以測試者用Java 8與Java 11進行對比測試。GC是影響Java性能的關鍵因素,所以測試自然也基於GC,在G1 GC和並行GC下分別進行了測試,結果如下:
Java 8 vs. Java 11
使用G1 GC
G1 GC 下每秒分值:
Java 11在幾乎所有測試數據集上都有速度上的提升。平均而言,僅通過切換到Java 11就有16%的改進,這種改進可能是因為Java 10中引入了JEP 307: Parallel Full GC for G1。
使用並行GC
並行GC 下每秒分值:
使用並行GC,結果不如G1,某些數據集上有所改進,但其它數據集保持不變甚至出現性能下降。平均而言,Java 11 的性能提升了4% 以上。
測試者還在Java 11 上對並行GC 與G1 GC 進行對比:
Java 11 上並行GC vs. G1 GC
結果表明G1 GC 整體上不如並行GC。
OptaPlanner 表示,從Java 8 到 Java 11,G1 GC 的平均速度改進為16.1%,並行 GC 為4.5%。此外雖然並行 GC 面向吞吐量,而G1 則側重於低延遲GC,但是Java 11 中帶來的 G1 顯著改進,使得將兩者進行直接比較是有意義的。此外,基於基準測試中的大多數數據集來看,並行GC 還是更適合OptaPlanner 的,因為吞吐量對於解決OptaPlanner 的優化問題更為重要。
詳細測試基準與過程查看原文: