jvm - GC垃圾回收器(二) G1垃圾回收器

???G1垃圾回收器和CMS垃圾回收器有什么区别?
G1横跨young old两区(证明:-XX:PrintGCDetails -XX:UseG1GC   ,在输出中只能看到garbage first heap和Metaspace,看不到young、old),而CMS用于老年代;
CMS采用老年代采用标记清除,而G1整体上采用标记整理,局部采用复制算法,不会产生内存碎片;

在IDEA配置JVM参数:

结果:

只有两层,新生代+老年代被grabage-first heap一次性拿下(证明了: G1横跨young old两区)

 

底层原理:
G1是区域化的垃圾收集器,最大好处是化整为零,避免全内存扫描,只需要按照区域来进行扫描即可。

 

 

G1的回收步骤:


四步过程,和CMS类似:

常用参数配置:

G1的STW更可控,G1在停顿时间上添加了预测机制,用户可以指定期望停顿的时间。

 

一般设置下面几个参数就够了:

G1和CMS相比:
CMS会产生内存碎片是因为它在老年代使用标清算法,没有整理,所以会产生碎片,
而G1整体采用标整,局部采用复制,不会产生碎片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值