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:清理老年代


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM