【发布时间】:2013-06-01 14:22:05
【问题描述】:
哪些垃圾收集算法可以在垃圾对象变成垃圾后立即识别?
我想到的唯一一件事是引用计数,每次引用计数减少到非零值时都会增加循环搜索。
还有其他有趣的收集算法可以实现吗? (请注意,我只是出于好奇而询问;我知道所有此类收集器的效率可能都非常低)
【问题讨论】:
-
今天在 Hacker News 上有一篇关于实时 GC 的帖子。 (我没看过)
-
您可以在每次引用更改后运行标记和清除 GC。虽然那会非常低效。
-
@svick:你是对的。现在我觉得自己很愚蠢:)
-
@leppie 实时 GC 意味着内存分配由 GC 控制的代码可以是实时的,例如通过在滑动时间窗口内保证一定百分比的 CPU 利用率。它与释放的及时性无关。事实上,这个目标(像许多其他目标一样)与它相冲突..
-
没有,有效地确定一个对象是否是垃圾就像 np-hard。检测垃圾循环听起来很容易,但实际上很难做到。在最坏的情况下,这项工作相当于在标记和清除收集器中进行完整标记阶段。
标签: language-agnostic garbage-collection