介绍
ZGC
是JDK11
之后带来的全新垃圾回收器,主要目标是降低停顿时间,但是会一定程度上降低吞吐量。
- 主要目标
- 支持
TB
级别的堆 - 最大停顿不超过
10ms
,无论堆的大小,这个数据都不会变 - 奠定未来
GC
特性的基础 - 最糟糕的情况下吞吐量只降低
15%
,不过可以用横向扩容解决
机制
-
Pause Mark Start
暂停标记阶段,找到当前活跃的引用。此阶段速度很快,会造成短暂的停顿 -
Concurrent Mark
并发标记阶段,从上一步基础上继续往下标记存活对象。在并发结束后会有一个端在的停顿,确保所有对象都被标记 -
Concurrent Prepare for Relocate
准备阶段,并发选取接下来需要标记整理的对象。结束后会有一个端在的停顿,用于移动root
集合对象的引用 -
Concurrent Relocate
移动上一阶段标记存活的对象,并整理
特性
- 没有分代,分代实现较为麻烦,目前没有分代
-
Region Based
,ZGC
的内存空间被分为三类规格的空间,2MB
、32MB
、N*2MB
,灵活性更好 -
Partial Compaction
部分压缩
关键词: 垃圾回收机制
, java
,JVM
网友评论