前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >G1垃圾收集器(7)之Full GC

G1垃圾收集器(7)之Full GC

作者头像
黑洞代码
发布2021-06-23 00:30:45
2.2K0
发布2021-06-23 00:30:45
举报

Full GC

当混合回收无法跟上内存分配的速度,导致老年代也满了,就会进行Full GC对整个堆进行回收。G1中的Full GC也而是单线程串行的,而且是全暂停,使用的是标记-整理算法,代价非常高。

暂停时间的控制

G1在移动过程中虽然也是全暂停,不过G1在选择回收集合上是变化的,每次只选择部分的区域进行回收,通过计算每个区域的预测暂停时间来保证每次回收所占用的时间。简单的说就是将一次完整的GC拆分成多次短时间的GC从而降低暂停的时间,尽量保证每次的暂停时间在用户的配置范围(-XX:MaxGCPauseMilli)内。

年轻代大小的配置

G1为了控制暂停时间,年轻代最大区域数是动态调整的,不过如果手动设置了年轻代大小,比如Xmn/MaxNewSize/NewRatio等,并且年轻代最大和最小值一样,那么相当于禁用了这个最大区域数调整的功能,可能会导致暂停时间控制的失效(因为年轻代GC是选择全部区域的,区域过多会导致暂停时间的增加)。所以G1中尽量不要设置年轻代的大小,让G1自动的进行调整

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 落叶飞翔的蜗牛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Full GC
  • 暂停时间的控制
  • 年轻代大小的配置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档