问十八:Minor GC和Full GC的触发条件?

Minor GC和Full GC触发条件

1、Minor GCeden区满时,触发MinorGC(即申请一个对象时,发现eden区不够用,则触发一次MinorGC)

注:新生代分为三个区域,eden space, from space, to space。默认比例是8:1:1

在MinorGC时,会把存活的对象复制到to space区域,如果to space区域不够,则利用担保机制进入老年代区域

2、Full GC

1.老年代空间不够分配新的内存(或永久代空间不足,但只是JDK1.7有的,这也是用元空间来取代永久代的原因,可以减少Full GC的频率,减少GC负担,提升其效率)

2.GMS GC时出现promotion failed(在进行minorGC时,survivor space放不下,分配担保时担保失败,对象只能放入老年代,然而此时老年代也放不下), concurrent mode failure(在进行GMS GC过程中同时有对象要放入老年代中,而此时老年代空间不足)

3.Minor GC晋升到老年代的平均大小大于老年代的剩余空间

4.System.gc()【只是提醒一下虚拟机需要回收对象,但是是否回收,还是由虚拟机决定】

5.使用RMI来进行RPC或管理的JDK应用,每小时执行1次Full GC

 

新生代与老年代所占内存比例

(from与to区都是Survivor区)

 

常用的调优参数

-XX:SurvivorRator=8

    表示堆内存中新生代、老年代和永久代的比为8:1:1

-XX:NewRatio

    老年代和年轻代内存大小比例

-XX:MaxTenuringThreshold=15    

    表示当对象的存活的年龄(minor gc一次加1)大于多少时,进入老年代

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值