031 MixedGC (重点)
2020-12-01 14:42:21 0 举报
MixedGC
作者其他创作
大纲/内容
老年代 1000
混合回收2STW
最终标记
Eden 800
2、MixedGC过程
STW
停止混合回收
1、回收中,将存活对象 复制 到另个Region,并不断回收原region ,这样会有空闲Region产生,当 空闲Region 达到font color=\"#ff0000\
只标记 : GCRoots存活对象
GCRoots 追踪:并不是会标记新创建对象 而是追踪 非GCRoots 的对象
G1
FullGC
并发标记
Heap
1、 老年代 Region > -XX: font color=\"#ff3333\
一、 如何MixedGC?
混合回收1 STW
初次标记
STW ; 单线程 标记、清理、压缩,过程极慢
Survivor 200
MixedGC 总结几个小Tip:1、默认,空间region 到 5% Heap,就不继续2、默认,Region对象 > 85% Regsin,就不回收了3、MixedGC的混合回收可以反复进行4、 G1 的 混合回收过程,是基于 复制算法 的,不像 CMS ,有个 清理-内存碎片整理 的过程5、MixedGC 会根据预设时间选择回收 Region
标记最终要回收对象
3、判断 Region 存活对象 与 剩余Region 空间大小,若剩余Region不够用 ,触发 FullGC
STW
一点印象:G1 实现了动态内存管理:动态地将Region分配给Eden+Survivor+老年代+大对象region。并在新生代达到设定值,触发YoungGC,回收新生代region空间。YoungGC也是基于 复制算法,同ParNew比起来,会多出了 预设STW时间的功能。老对象(Age>15,或触发动态年龄判断)的还是会进入老年代Region.大对象,却不是进入老年代,而是 大对象Region。所以,G1的老年代 里只放 老家伙,不放 大家伙。那老年代如何回收? G1有个专有的MixedGC,会 同时回收新生代+老年代+大对象region
剩余 为 大对象Region
根据预设GC 停顿时间 ,可能反复多次混合回收。直到 -XX: G1MixedGCCountTarget(默认 8次)
间隔 STW
不会 STW
混合回收(是个过程)
收藏
收藏
0 条评论
下一页