【问题标题】:Generations in garbage collection and Large object heap垃圾收集和大对象堆中的世代
【发布时间】:2015-08-10 16:23:42
【问题描述】:

我知道我们在垃圾收集中有第 0、1 和 2 代,但它与小对象堆 (SOH) 和大对象堆 (LOH) 有什么关系?生成概念是否仅适用于 SOH?如果是,那么 LOH 中的对象是什么时候收集的?

【问题讨论】:

  • LOH 与第 2 代一起被 GC

标签: c# .net c#-4.0 garbage-collection


【解决方案1】:

它与小对象堆 (SOH) 和大对象有何关系 堆(LOH)

只有 SOH 被分成几代。 LOH 不是。

生成概念是否仅适用于 SOH?

是的。

如果是,LOH 中的对象是什么时候收集的?

一旦满足第 2 代或 LOH 内存阈值,就需要收集其中一个。如果请求 gen-0 或 gen-1 收集,则不会收集 LOH。

我建议阅读 Maoni Stephans 的 Large Object Heap Uncovered,它将带您了解 LOH 的内部结构。

【讨论】:

  • 它不会收集 LOH。 这我不知道...你有报价/链接吗?它是否仅限于“某些” GC 类型? (并发,服务器,...)
  • Here“现在我们来看看收集成本。LOH和2代一起收集。如果超过任何一个的阈值,就会触发2代收集。”
  • 啊好吧...这不是一个LOH的特殊效果...更像是“如果我现在收集gen0或gen1,我不做gen2,所以我不 GC LOH"
  • @xanatos 是的。这就是算法的工作方式 AFAIK。
  • @YuvalItzchakov - 感谢您回答这个问题! “Large Object Heap Uncovered”链接似乎不起作用,但我可以通过 Maoni Stephans 搜索找到很多详细信息。再次感谢您!
猜你喜欢
  • 2012-07-09
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
相关资源
最近更新 更多