GC有两种类型:Scavenge GC和Full GC。 1. Scavenge GC 一般情况下,当新对象生成,并且在Eden申请空间失败时,就好触发Scavenge GC,堆Eden区域进行GC,清除非存活对象,并且把尚且存活的对象移动到Survivor区。然后整理Survivor的两个区。 2. Full GC 对整个堆进行整理,包括Young、Tenured和Perm。Full GC比Scavenge GC要慢,因此应该尽可能减少Full GC。有如下原因可能导致Full GC: * Tenured被写满 * Perm域被写满 * System.gc()被显示调用 * 上一次GC之后Heap的各域分配策略动态变化 |
|