术语的统一

GC相关的术语有些比较混淆或有歧义,特别是Full GC和Major GC,有时候Major GC也是说FullGC

  • 新生代GC(Minor GC / Young GC): Eden与Survivor0,Survivor1的垃圾收集
  • 老年代GC(Major Gc / old Gc):老年代的垃圾收集。
  • FullGC:收集堆和方法区的GC
  • Mixed GC:收集整个新生代以及部分老年代的垃圾收集(G1)

什么时候触发Minor

  • 新生代空间不足

什么时候触发Full GC

  • 老年代空间不足
  • 方法区空间不足
  • 显式System.gc()
  • MinorGC进入老年代的数据的平均大小大于老年代的可用内存
  • 大对象直接进入老年代而老年代的空间不足