一、GC分类
1.1、Minor GC
指代年轻代的GC。Minor GC又被称为Young GC,简称YGC。
1.2、Major GC
指代老年代的GC。
1.3、Full GC
年轻代+老年代的GC。
1.4、Mixed GC
年轻代+部分老年代的GC。当下只存在于G1垃圾收集器中。
二、GC是否触发和GC触发条件
通常对“GC是否触发”和“GC触发条件”的描述是粗粒度和不准确的,细粒度和准确的描述需要结合所选用垃圾收集器,所选用垃圾收集器最终具体决定“GC是否触发,GC触发条件,GC算法”的所有细节。要想获取全面准确细节的最好方式就是阅读所选用垃圾收集器的源代码。
2.1、GC是否触发
举例说明对“GC是否触发”的细粒度准确描述需要结合所选用垃圾收集器:
- 有“当年轻代Eden区不能分配对象时,触发Minor GC”的通用描述,实际上当选用面向整个Java堆不分年轻代和老年代的垃圾收集器时,根本就不存在Minor GC
- 有“满足XX条件时,触发Mixed GC”的通用描述,实际当选用非G1垃圾收集器时,根本就不存在Mixed GC
2.2、GC触发条件
举例说明对“GC触发条件”的细粒度准确描述需要结合所选用垃圾收集器:
- 有“满足XX条件时,触发Major GC”的通用描述,实际上当选用CMS垃圾收集器时,还可通过
-XX:CMSInitiatingOccupancyFraction=N
JVM参数配置Major GC触发的额外条件
参考文献: [1]http://www.importnew.com/15820.html