【发布时间】:2013-11-09 16:11:41
【问题描述】:
Minor garbage collection 声称非常有效,因为它不会扫描老年代。
次要垃圾收集如何在不扫描的情况下检测到没有对来自永久或永久存储的年轻对象的引用?
【问题讨论】:
Minor garbage collection 声称非常有效,因为它不会扫描老年代。
次要垃圾收集如何在不扫描的情况下检测到没有对来自永久或永久存储的年轻对象的引用?
【问题讨论】:
看看Understanding GC pauses in JVM, HotSpot's minor GC,这篇文章将为你详细解释年轻的GC机制和HotSpot JVM中的编写障碍。
简而言之,老年代没有被跳过。所有从 old 到 new 的引用都被视为年轻空间 GC 的根(同样,所有从 new 到 old 的引用都被视为 old space GC 的根)。诀窍是写屏障只允许扫描旧空间的一小部分以查找对年轻空间的所有引用。
【讨论】:
它没有。在执行时,在引用分配(称为写屏障)上运行的小段代码会记录这些从旧到新的引用(特定对象或堆的小子区域以节省空间)。次要 GC 确实查看那些(罕见的)旧对象,它只是跳过那些已知不包含年轻引用的对象
【讨论】: