细数G1GC

G1GC是一种针对服务器应用的垃圾收集器,旨在同时优化吞吐量和停顿时间。它通过region划分、并发全局标记、Garbage-First策略等技术实现这一目标。文章介绍了G1GC的主要特点、工作原理,包括初始标记、并发标记、重标记等阶段,以及Remembered Set和Collection Set的数据结构。G1GC的并发优化线程和并发并行执行策略确保了高效运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

G1GC相当复杂,一篇文章的话很难说清楚,并且长篇冗杂,难读。本文旨在将G1GC中的部分点Get到,也很难全面,如果错误,请帮忙指正,多谢。

一、G1GC的目的

针对服务器应用(大heap内存、多核)进行垃圾收集,为了同时兼顾吞吐量和停顿时间而生。

二、特点

分区、分代、适用多核大heap内存、高吞吐、低停顿

三、如何实现对吞吐量和停顿时间的兼顾

1、技术手段

1)region划分
将整个heap划分为大小相等的region,每个region内的heap内存地址连续。

2)停顿时长预测模型
通过该模型来确定回收哪些region,以满足用户指定的可停顿时间。

3)并发全局标记
和应用程序并发执行,标记整个heap中存活对象。

4)Garbage-First
优先回收垃圾最多的region,以获取最大空间释放。

5)拷贝压缩
具体回收时,将Object从一个或多个region拷贝到单个heap region上,并对内存进行压缩整理。这一过程多线程并行执行,因此可减小停顿时间并提高吞吐量。

2、具体过程

1)region划分
将整个heap划分为大小相等的region,一组空region为逻辑上的yong region,另一组为逻辑上的old region,yong region包含Eden、survivor区,也都是由region为单位组成。

2)对象分配
对象在yong region 的Eden上分配

3)触发GC
当年轻代满,无法为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值