在64位系统上的LOH碎片有多糟糕

时间:2012-04-19 17:45:48

标签: .net performance c#-4.0 memory large-object-heap

大对象堆碎片在32位系统上是一个明显的问题,因为地址空间相对较小,因此你可以用完它并且很快“点击”OutOfMemoryException

由于64位地址空间要大得多,因此耗尽地址不是问题(对于我们的场景)。因此,主要问题是它如何影响机器的性能。

LOH中的可用空间是保留但未提交,还是保留在提交状态? 即使它已经提交,如果它未被使用也不会被分页并且实际上没有占用物理内存?

在我们的特定场景中,由于没有足够的地址空间,我们不太担心会因为这样做而触及OOM: 1.花一点时间 2.发生这种情况时,我们的服务会自动重启。

我们更关心这将对我们正在运行的机器的整体性能产生影响。

有人能说清楚这个问题吗?

1 个答案:

答案 0 :(得分:2)

我尽量不要简单地发布直接链接,但这个页面可能不会去任何地方,它解释了LOH的来龙去脉比我在这里更好。

The Large Object Heap Uncovered