.net 大型对象堆压缩的默认策略

.net 大型对象堆压缩的默认策略,.net,garbage-collection,large-object-heap,.net,Garbage Collection,Large Object Heap,默认情况下,.NET framework用于压缩大型对象堆的策略是什么 从未压实 一段时间后压缩(不像世代堆那样具有攻击性) 什么有效?如果是“过一段时间”,是否有一些关于“多久”或“何时”的细节 (我对高于4.5的.NET framework版本感兴趣)默认情况下,LOH根本没有压缩。因为那可能很贵 从4.5.1开始,您可以使用GCUS设置进行更改。选择是一次又一次的 因此,您可以通过应用程序逻辑进行压缩 LOH仅在第2代收集期间收集(扫描)。这可能会导致你的“一段时间后”困惑。但收集不是

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

  • 从未压实
  • 一段时间后压缩(不像世代堆那样具有攻击性)
什么有效?如果是“过一段时间”,是否有一些关于“多久”或“何时”的细节


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

默认情况下,LOH根本没有压缩。因为那可能很贵

从4.5.1开始,您可以使用GCUS设置进行更改。选择是一次又一次的

因此,您可以通过应用程序逻辑进行压缩


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

哪些文本?这有助于了解我们的反应。谢谢。但您的措辞表明GCSettings.LargeObjectHeapCompactionMode是永久设置的,而它只是一次分配,将在下一次阻塞GC后重置。我想你应该说清楚。是的,它只对一次收集有效。这就是我的意思。