1

默认情况下,.NET 框架用于压缩大对象堆的策略是什么?

  • 从不压实
  • 一段时间后压缩(不像分代堆那样积极)

什么持有?如果“一段时间后”,是否有一些关于“多久”或“何时”的细节?

(我对高于 4.5 的 .NET 框架版本感兴趣)

4

1 回答 1

2

默认情况下,LOH 根本不会被压缩。因为那可能很贵。

从 4.5.1 开始,你可以使用 GCSettings 来改变它。选择是 CompactOnce 和 Never。

因此,您可以手动触发由应用程序逻辑驱动的 Compaction。

LOH 仅在第 2 代收集期间收集(清扫)。这可能会导致您“一段时间后”的困惑。但是收集不是压缩。

于 2018-11-21T13:01:00.813 回答