ZGC如何划分其堆内存空间?

ZGC 和 G1一样,使用了一种分区的内存布局,它将整个堆划分为多个区域 (Regions),分别是

小型 Region (Small Region): 容量固定为 2MB,用于存储小于 256KB 的小对象

中型 Region (Medium Region) : 容量固定为 32MB,用于存储大于等于 256KB 目小于4MB 的对象

大型 Region (Large Region): 容量不固定,对象大小为 2 的整数倍,可以动态创建和销毁,用于放置 4MB 及以上的大对象。

和 G1 不同的是,ZGC 没有按固定的新生代和老年代划分,每个区域都可以用于存储不同代的对象,每个区域既可以存储新生代对象,也可以存储老年代对象,这样的设计使得 ZGC 能够更灵活地适应不同应用程序的内存需求,同时支持高效的并发垃圾回收。
所以,在 ZGC 垃圾收集器中,已经没有新生代、老年代的分代概念了。

发表评论

后才能评论