ZGC

介绍

ZGCJDK11之后带来的全新垃圾回收器,主要目标是降低停顿时间,但是会一定程度上降低吞吐量。

  • 主要目标
  1. 支持TB级别的堆
  2. 最大停顿不超过10ms,无论堆的大小,这个数据都不会变
  3. 奠定未来GC特性的基础
  4. 最糟糕的情况下吞吐量只降低15%,不过可以用横向扩容解决

机制

  1. Pause Mark Start暂停标记阶段,找到当前活跃的引用。此阶段速度很快,会造成短暂的停顿
  2. Concurrent Mark并发标记阶段,从上一步基础上继续往下标记存活对象。在并发结束后会有一个端在的停顿,确保所有对象都被标记
  3. Concurrent Prepare for Relocate准备阶段,并发选取接下来需要标记整理的对象。结束后会有一个端在的停顿,用于移动root集合对象的引用
  4. Concurrent Relocate移动上一阶段标记存活的对象,并整理

特性

  1. 没有分代,分代实现较为麻烦,目前没有分代
  2. Region Based,ZGC的内存空间被分为三类规格的空间,2MB32MBN*2MB,灵活性更好
  3. Partial Compaction部分压缩

关键词: 垃圾回收机制, java,JVM

你可能感兴趣的:(ZGC)