什么时候触发GC

什么时候触发GC?

1. 当Eden区满了的时候,会触发Young GC

2. 在发生Young GC的时候,虚拟机会检测之前每次晋升到老年代的平均大小是否大于年老代的剩余空间,如果大于,则直接进行Full GC;如果小于,但设置了Handle PromotionFailure,那么也会执行Full GC


我的理解(可能不准确):

  1. 最初我以为是,当年老代满了的时候,才进行Full GC,但是这种情况貌似不存在,为什么呢?因为每次Young GC的时候,虚拟机都会检测之前每次晋升到年老代的大小是否大于年老代的剩余空间,只要大于,那么就直接进行Full GC,这样看来,年老代应该是还没有满,就进行了Full GC

  2. 由第1点可以得出,每次Full GC的时候,应该都会伴随着一次Young GC



猜你喜欢

转载自blog.51cto.com/11009785/2399498