Minor GC&Full GC&Major GC区别及触发条件

Minor GC:从年轻代回收内存
触发条件
1、Eden区域满

​ 2、新创建的对象大小 > Eden所剩空间

Full GC:清理整个堆空间,包括年轻代和老年代
触发条件
​ 1、每次晋升到老年代的对象平均大小>老年代剩余空间

​ 2、MinorGC后存活的对象超过了老年代剩余空间

​ 3、永久代空间不足

​ 避免Perm Gen占满造成Full GC现象,可采用的方法为增大Perm Gen空间或转为使用CMS GC

​ 4、System.gc()

​ 通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc

​ 5、CMS GC异常

​ promotion failed:MinorGC时,survivor空间放不下,对象只能放入老年代,而老年代也放不下造成

​ concurrent mode failure:GC时,同时有对象要放入老年代,而老年代空间不足造成

6、堆内存分配很大的对象

Major GC:清理老年代

posted @ 2019-03-06 16:45  那钢绕指柔  阅读(4202)  评论(5编辑  收藏  举报