读书笔记-JVM-ZGC垃圾收集器

45 阅读1分钟

ZGC是一款基于Region内存布局的,(暂时)不设分代的,使用了读屏障、染色指针和内存多重映射等技术来实现可并发标记的标记-整理算法的,以低延迟为首要目标的一款垃圾收集器。

ZGC的Region内存布局具有动态性,动态的创建和销毁,动态的区域容量大小,具有大、中、小三种容量类型

小型Region:容量固定为2MB,用于放置256KB的小对象。

中型Region:容量固定位32MB,用于放置大于等于256KB但小于4MB的对象。

大型Region:容量不固定,可以动态变化,必须为2MB的倍数,用于放置4MB或以上的大对象。

ZGC的染色指针,染色指针直接把标记信息记在引用对象的指针上,这时可达性分析直接遍历引用图来标记引用。

并发标记->并发预备重分配->并发重分配->并发重映射

做到了几乎整个收集过程全程可并发,短暂的停顿也只与GC Root大小相关而与堆内存大小无关,因而实现了任何堆上停顿都小于十毫秒的目标。

性能上,ZGC在吞吐量方面,达到Parallel Scavenge的99%,直接超越了G1,停顿时间上,远远的领先G1