默认情况下,.NET 框架用于压缩大对象堆的策略是什么?
- 从不压实
- 一段时间后压缩(不像分代堆那样积极)
什么持有?如果“一段时间后”,是否有一些关于“多久”或“何时”的细节?
(我对高于 4.5 的 .NET 框架版本感兴趣)
默认情况下,.NET 框架用于压缩大对象堆的策略是什么?
什么持有?如果“一段时间后”,是否有一些关于“多久”或“何时”的细节?
(我对高于 4.5 的 .NET 框架版本感兴趣)
默认情况下,LOH 根本不会被压缩。因为那可能很贵。
从 4.5.1 开始,你可以使用 GCSettings 来改变它。选择是 CompactOnce 和 Never。
因此,您可以手动触发由应用程序逻辑驱动的 Compaction。
LOH 仅在第 2 代收集期间收集(清扫)。这可能会导致您“一段时间后”的困惑。但是收集不是压缩。