什么是gc中的顺序存储缓冲区结构?

时间:2018-03-07 09:07:05

标签: garbage-collection jvm jvm-hotspot

我已阅读垃圾收集书,它提到了一种数据结构,顺序存储缓冲区,任何人都可以帮我解释它是如何工作的吗?还是原则?或者我可以找到关于它的论文?

1 个答案:

答案 0 :(得分:0)

对于世代收藏家来说,堆的不同区域在不同的时间被收集(对于年轻人来说是次要的,对于老一代来说是主要的)。为了确保收集的一致性,通常使用记忆集来记录从旧一代对象到年轻一代的链接。

有不同的方法来记录记忆集,如您提到的GC书中所述。一种常见的方法是使用卡片表,这是G1收集器的工作方式。

另一种方法是顺序存储缓冲区。这是一个大致类似堆栈的内存区域,即有一个指向下一条数据存储位置的指针。保存数据后,指针会受到数据大小的影响。这非常有效(并且也是年轻一代分配空间的方式)。对于使用写屏障(大多数)的GC算法,这是减少写屏障所产生的负载的好方法。它在具有分支预测的流水线架构上也非常有效。