java中gc触发的条件,各种gc触发条件统计

Minor GC

Minor GC:当Eden区所剩空间,不满足分配需求时,就会触发Minor GC。

Full GC

当进行Minor GC时,会预测老年代能否承受得住新生代晋升的空间,预测的行为是对比当前老年代所剩空间大小和以往Minor GC平均晋升空间大小或者对比当前老年代所剩空间大小和年轻代存活对象总空间(二者是或的关系,成立一个即可),大于的话,预测是可以通过的,就只进行一次Minor GC。小于的话,预测是无法通过的,就要进行一次Full GC,对整个堆进行一次回收(其中也会包括对Eden、Survivor区的回收),当然我理解,本次Minor GC也就被Full GC代替。

以上只是预测,实际情况还可能出现预测大于,实际小于的情况,这种情况下就会出现【担保失败】的情况,还会引发一次Full GC。

永久代(或者可是说是方法区的实现)满了,也会触发full gc

对比可以看出,从JDK7以后,就不再使用 younger_handles_promotion_failure 变量,并且逻辑默认是打开的。

CMS GC

其实取这个名字不是很合适,只是为了突出是CMS的GC。因为CMS是老年代回收器,所以对应的GC应该是Old GC。CMS GC的监控条件是老年代的使用率,对应的配置是

-XX:CMSInitiatingOccupancyFraction

Mixed GC

G1回收器独有的回收方式

-XX:InitiatingHeapOccupancyPercent

参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值