Java 17到底快了多少?

banq發表於2021-09-16

optaplanner組織比較 JDK 17、JDK 16 和 JDK 11 的基準測試來找出答案。測試方法點選標題,直接結果:
平均而言,對於 OptaPlanner 用例,這些基準測試表明:
  • 對於 G1GC(預設),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%。
  • 對於 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%。
  • Parallel Garbage Collector 比 G1 Garbage Collector 快 16.39%。


這裡沒有什麼大驚喜:最新的 JDK 更快,高吞吐量垃圾收集器比低延遲垃圾收集器更快。
我們對 JDK 15 進行基準測試時,我們看到 Java 15 比 Java 11 快 11.24%。現在,Java 17 相對於 Java 11 的增益更少。這是否意味著 Java 17 比 Java 15 慢?
嗯,不。Java 17 也比 Java 15 快。 之前的那些基準測試是在不同的程式碼庫上執行的(OptaPlanner 7.44 而不是 8.10)。
 
結論
總之,JDK17 版本中獲得的效能非常值得升級 - 至少對於OptaPlanner用例而言。
此外,這些用例最快的垃圾收集器仍然是ParallelGC, 而不是G1GC(預設)。
 
有其他測試資料,啟用AppCDS提升效能更快:應用程式類資料共享(AppCDS)是一種JVM特性,用於加速啟動和節省記憶體。源於JDK1.5的HotSpot ,在OpenJDK 10(2018年)中,它變得廣泛可用,並且更加適用。此外,最近釋出的Java13使功能應用程式更加簡單。
springboot服務啟動測試:
java11 + AppCDS = 比沒有使用AppCDS的Java11啟動時間提高8%
Java17 + AppCDS = 比沒有使用AppCDS的Java17啟動時間提高20%
因為Java17有比Java11快10%,因此,使用Java17+AppCDS比java11快了整整30%


 

相關文章