JDK 18三個垃圾回收G1/Parallel/Serial GC的改進提升點
整個 Hotspot GC 子元件的完整更改列表在這裡,總共有 300 個更改。
通用改進
- 所有 OpenJDK 垃圾收集器Parallel GC、Serial GC和ZGC 現在都支援字串重複資料刪除:-XX:+UseStringDeduplication使用該選項啟用。
- -XX:GCCardSizeInBytes:更改此值會對暫停時間長度產生重大影響。用來配置 card table card size,詳細這裡。
下面是三者各自的改進點:
G1 GC
- 記憶集重寫大量減少了 G1 本機記憶體消耗,無需任何成本。它顯著減少了記憶集的本機記憶體佔用。
- 取消了以前由某些內部資料結構強加的 32MB 區域大小限制。目前最大堆區域大小已設定為 512MB,但可能更大。
- 在某些情況下,當 Java 應用程式即將退出時,G1 等待活動併發標記的完成以實際退出。這可能會導致很長的延遲,具體取決於該任務的複雜性。JDK 18 修復了這個問題,“立即”退出 VM。
- 修復了JDK 14中引入的一個有趣的效能迴歸:在尋找對要收集的區域的引用時,疏散工作最初沒有很好地分佈。在較大的機器上,這暴露了工作竊取機制中的問題,導致停頓時間過長。
- 更新了垃圾收集調優指南以反映 JDK 18 的 G1 的當前狀態,改進了各個部分。
Serial GC:
- 序列 GC增加了對歸檔堆物件的支援。這可以顯著減少啟動時間。
相關文章
- [Inside HotSpot] Serial垃圾回收器Full GCIDEHotSpotGC
- [Inside HotSpot] Serial垃圾回收器 (二) Minor GCIDEHotSpotGC
- 垃圾回收機制GC從JDK 8到JDK 17的效能提升 - kstefanjGCJDK
- JDK 18 GC垃圾回收機制比較JDKGC
- Unity GC垃圾回收UnityGC
- GC垃圾回收器GC
- 探索G1垃圾回收器
- Java11改進的垃圾回收器Java
- .Net平臺的GC垃圾回收GC
- 瞭解JDK的新型超快垃圾收集器:Shenandoah、ZGC和改進的G1 - oracleJDKNaNGCOracle
- 十種GC垃圾回收器GC
- 聊聊JVM的垃圾回收機制GCJVMGC
- 垃圾回收之G1收集過程
- Java 22中三種垃圾回收GC效能獲得了大提升JavaGC
- 託管堆和垃圾回收(GC)GC
- G1 垃圾回收器簡單調優
- 垃圾回收之CMS、G1、ZGC對比GC
- 秋招乾貨 - JVM 垃圾回收(GC)JVMGC
- GC 分代回收 - 垃圾收集器GC
- JVM學習(二)——GC垃圾回收機制JVMGC
- 【JVM第八篇--垃圾回收】GC和GC演算法JVMGC演算法
- G1垃圾回收器介紹與CMS區別
- jdk8:垃圾回收演算法JDK演算法
- JVM垃圾回收——新生代,老年代,永久代,Minor GC,Full GCJVMGC
- java學習筆記-4 JVM垃圾回收(GC)Java筆記JVMGC
- 一文了解JVM全部垃圾回收器,從Serial到ZGCJVMGC
- G1垃圾回收器在併發場景調優
- Java虛擬機器-GC垃圾回收演算法-判定一個物件是否是可回收的物件Java虛擬機GC演算法物件
- Java常見知識點彙總(⑰)——垃圾回收機制(garbage collection-GC)JavaGC
- 【Android面試-Java-V05】Java GC 垃圾回收Android面試JavaGC
- 為什麼GC(垃圾回收)必須stop-the-world?GC
- 深入理解Java的垃圾回收機制(GC)實現原理JavaGC
- 垃圾回收(一)【垃圾回收的基礎】
- 垃圾回收演算法|GC標記-清除演算法演算法GC
- 如何在Java 9以上的JVM中微調G1垃圾回收? - DZone效能JavaJVM
- 垃圾回收(三)【垃圾回收通知】
- JVM必備基礎知識(三)-- GC垃圾回收機制JVMGC
- ☕[JVM技術指南](4)垃圾回收子系統(Garbage Collection System)之G1垃圾收集器SATBJVM