小垃圾收集如何跳过老一代?

时间:2013-11-09 16:11:42

标签: java garbage-collection

据称,小型垃圾收集非常有效,因为它不会扫描老一代。

小型垃圾收集如何在没有扫描的情况下检测到没有对终端或永久存储器中的年轻对象的引用?

2 个答案:

答案 0 :(得分:0)

没有。在执行时,在引用赋值(称为写屏障)上运行的小块代码记录这样的从旧到年的引用(特定对象或堆的小子区域以节省空间)。次要GC 查看那些(罕见的)旧对象,它只是跳过那些已知不包含年轻引用的对象

答案 1 :(得分:0)

看看Understanding GC pauses in JVM, HotSpot's minor GC,本文将为您提供HotSpot JVM中年轻GC机制和写入障碍的详细解释。

简而言之,不会跳过老一代。从旧到新的所有引用都被视为年轻空间GC的根(同样,从旧到旧的所有引用都被认为是旧空间GC的根)。特技是写屏障只允许扫描旧空间的很小一部分,以找到所有对年轻空间的引用。