jvm

Java JVM ZGC垃圾回收器

2021-02-09  本文已影响0人  zhglance

1.ZGC简介

ZGC(Z Garbage Collector)是一款基于Region内存布局(有点类似于G1)的,不设置分代的,使用了读屏障、染色体指针和内存多重映射等技术来实现可并发标记-整理算法的,以低延迟为首要目标的一款垃圾收集器。旨在尽可能对吞吐量影响不大的前提下,实现在任意堆内存大小都可以把垃圾收集的停顿时间限制在10ms以内的低延迟。

主要特点:

1.ZGC不分代,每次垃圾回收都是全量内存进行标记,每次相当于Full GC,但回收的时候可采取部分回收的策略;
2.内存分区管理,分成小中大三种分区粒度;
3.仅支持Linux 64位系统,不支持Window;
4.具有读屏障,实现并发标记和并发转移的处理;
5.不支持指针压缩;
6.具有染色体指针,实现并发标记、转移和重定位;
7.小分区优先回收,中分区和大分区尽量不回收;
8.针对多核,支持非统一内存访问,即NUMA(Non-Uniform Memory Access),小分区优先分配到CPU的本地内存中,中大分区则交由操作系统处理。

1.1 Java各种GC的并发比较

Java各种GC的并发比较.jpg

2.ZGC实现原理

1.2 ZGC的Region

ZGC-Region.jpg

1.2 ZGC的染色体指针(colored pointer)

染色体指针.jpg
上一篇 下一篇

猜你喜欢

热点阅读