OpenJDK17-JVM源码阅读-ZGC-并发标记 | 京东物流技术团队
💡
原文中文,约18900字,阅读约需45分钟。
📝
内容提要
本文介绍了ZGC垃圾回收器的读屏障实现和防止漏标,采用增量更新解决方案,通过读屏障实现标记过程中的指针自愈和防止漏标。ZGC无法获得其他对象指向此对象的指针,但通过标记阶段和重分配阶段的代码连起来,可以得知对象是否存活。
🎯
关键要点
- ZGC 是一款低延迟的垃圾回收器,支持 Java 的最新垃圾收集技术。
- ZGC 从 JDK11 开始作为试验特性推出,JDK15 正式投入生产使用。
- ZGC 特征包括低延迟、大容量堆、染色指针和读屏障。
- ZGC 的垃圾收集过程包括初始标记、并发标记、并发重映射等多个阶段。
- ZGC 使用增量更新解决方案和读屏障来防止漏标。
- ZGC 的并发标记过程通过任务框架和标记条带进行。
- ZGC 的读屏障实现了指针自愈,确保指针指向有效对象。
- ZGC 通过标记阶段和重分配阶段的代码结合,判断对象是否存活。
- ZGC 采用增量更新解决方案来避免漏标,确保指针中不存在白色对象。
➡️