【发布时间】:2018-03-07 09:07:04
【问题描述】:
我读过垃圾收集书,它提到了一种数据结构,顺序存储缓冲区,谁能帮我解释一下它是如何工作的?还是原理?或者我在哪里可以找到关于它的论文?
【问题讨论】:
标签: garbage-collection jvm jvm-hotspot
我读过垃圾收集书,它提到了一种数据结构,顺序存储缓冲区,谁能帮我解释一下它是如何工作的?还是原理?或者我在哪里可以找到关于它的论文?
【问题讨论】:
标签: garbage-collection jvm jvm-hotspot
对于分代收集器,堆的不同区域在不同时间被收集(对于年轻一代来说是次要的,对于老一代来说是主要的)。为了确保收集的一致性,通常使用一个记忆集来记录从老年代中的对象到年轻代的链接。
如您提到的 GC 书中所述,记录记忆集的方法有多种。一种常见的方式是使用牌桌,这是 G1 收藏家的做法。
另一种方法是顺序存储缓冲区。这是一个被粗略视为堆栈的内存区域,即有一个指向可以存储下一条数据的位置的指针。保存数据后,指针会受到数据大小的影响。这是非常有效的(也是年轻代分配空间的方式)。对于使用 write-barrier(大多数)的 GC 算法,这是减少 write-barrier 产生的负载的好方法。它在具有分支预测的流水线架构上也非常有效。
【讨论】: