一般来说,垃圾收集分两种,即次要垃圾收集(也称新生代垃圾收集,以下称为Minor GC)和主要垃圾收集(以下称为Full GC)。

Minor GC收集新生代,Full GC通常会收集整个堆,包括新生代、老年代和永久代,除了将新生代中的活跃对象提升到老年代之外,还会压缩整理老年代和永久代。

因而Full GC之后,新生代为空,老年代和永久代也已压缩整理并且只有活跃对象。

如果各项参数设置合理,系统没有超时日志出现,GC频率不高,GC耗时不高,那么没有必要进行GC优化;

如果GC时间超过1-3秒,或者频繁GC,则必须优化。如果满足下面的指标,则一般不需要进行GC:

Minor GC执行时间不到50ms;

Minor GC执行不频繁,约10秒一次;

Full GC 执行时间不到1s;

Full GC执行频率不算频繁,不低于10分钟一次。