【发布时间】:2019-04-24 00:48:59
【问题描述】:
.NET 框架默认使用什么策略来压缩大对象堆?
- 从不压缩
- 一段时间后压缩(不像分代堆那么积极)
什么是有效的?如果是“一段时间后”,是否有一些关于“多久”或“何时”的细节?
(我对高于 4.5 的 .NET 框架版本感兴趣)
【问题讨论】:
-
哪些文本?这有助于了解我们的反应。
标签: .net garbage-collection large-object-heap
.NET 框架默认使用什么策略来压缩大对象堆?
什么是有效的?如果是“一段时间后”,是否有一些关于“多久”或“何时”的细节?
(我对高于 4.5 的 .NET 框架版本感兴趣)
【问题讨论】:
标签: .net garbage-collection large-object-heap
默认情况下,LOH 根本不会被压缩。因为那可能很贵。
从 4.5.1 开始,您可以使用 GCSettings 来更改它。选择是 CompactOnce 和 Never。
所以你可以manually trigger 一个压缩,由你的应用程序逻辑驱动。
LOH 仅在第 2 代收集期间收集(清扫)。这可能会导致您“一段时间后”的困惑。但是收集不是压缩。
【讨论】: