栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

G1垃圾回收器学习2

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

G1垃圾回收器学习2

1.什么时候触发新生代与老年代的混合垃圾回收?
“-XX:InitiatingHeapOccupancyPercent”参数,默认为45%。当老年代的Region占了45%时,会触发新生代+老年代混合回收阶段。

2.回收过程
①初始标记——“Stop the World”
标记GC Roots(栈的局部变量、方法区的类静态变量)直接引用的对象。
②并发标记
进行追踪,从GC Roots开始追踪所有存活对象。并发标记阶段与系统程序并发运行,所以对程序影响不大。这个阶段还会记录对象的新建与失去引用。
③最终标记——“Stop the World”
最终标记阶段会根据并发标记的记录,最终标记哪些对象存活,哪些是垃圾。
④混合回收——“Stop the World”
这个阶段会根据我们预设的GC停顿时间,可能回收的Region有新生代+老年代+大对象一起回收,达到可控时间内回收最多垃圾的目的。
混合回收是基于复制算法,把存活对象移到另一个Region去,再消除这个Region对的垃圾对象。
“-XX:G1MixedGCLiveThresholdPercent参数,默认是85%,表示要回收的Region的存活对象要低于85%才回收。

3.G1垃圾回收器的一些参数
-XX:G1MixedGCCountTarget”
在混合回收的过程中,会停止所有程序运行,所以G1允许执行多次混合回收。
-XX:G1MixedGCCountTarget”参数,代表执行几次混合回收,默认值为8次
意思是先停止系统运行,混合回收一些Region,再恢复系统运行,再停止系统运行,混合回收一些Region;往返重复8次。

“-XX:G1HeapWastePercent”
混合回收时基于复制算法,在回收的过程中会不断空出新的Region来,一旦空闲出来的Region达到了堆内存的5%,就会停止混合回收。

4.回收失败的处理
如果在Mixed回收中,当没有空间的Region进行复制算法时,就会触发失败,立马停止系统程序,然后采用单线程进行标记、清理、整理,这个过程是极慢的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号