zgc旨在将gc暂停时间稳定控制在10毫秒以内且不随堆增大而上升,通过着色指针、读屏障和分页管理实现几乎无stw的并发回收,重构了gc执行模型。

ZGC的设计初衷很明确:在堆内存规模持续膨胀的今天,让应用不因GC而“卡顿”。
传统垃圾回收器面对几十GB甚至TB级堆时,停顿时间会显著拉长——G1在1TB堆上可能停顿上百毫秒,这对金融交易、实时风控、高并发API网关等系统是不可接受的。ZGC就是要打破这个瓶颈,把GC暂停时间稳定压在10毫秒以内,且这个上限不随堆大小增长而上升。
它不是靠“更快地做完GC”,而是靠“几乎不做STW”。核心思路是把原本必须停下来的步骤,拆解、并发、延迟到应用线程运行时处理。
关键实现路径有三条:
- 用着色指针把对象状态(标记、重定位、可终结)直接编码进64位地址的低几位,省去查对象头、加锁、维护额外元数据的开销
- 在每次对象读取时插入轻量级读屏障,由应用线程顺手完成指针更新或重定向,把GC工作“摊”到日常访问中
- 堆按2MB/32MB/动态大页分区,分配时按对象大小就近匹配,避免跨区引用和碎片化,为并发整理打下基础
所以ZGC不是“优化了老方案”,而是重构了GC的执行模型:从“应用让路给GC”,变成“GC融入应用流”。对超大堆而言,这不是锦上添花,而是支撑业务扩展的基础设施级能力。











