相关疑难解决方法(0)

LOH 碎片化 - 2015 年更新

有很多关于 .NET LOH 的信息,并且已经在多篇文章中进行了解释。但是,似乎有些文章缺乏一点精确度。

过时的信息

Microsoft 项目经理 Brian Rasmussen 的回答 (2009) 中,他说限制是 85000 字节。他还让我们知道有一个更奇怪的例子,double[]大小为 1000 个元素。CLR 团队成员 Maoni Stephens (MSDN, 2008)声明了相同的 85000 限制。

在评论中,Brian Rasmussen 变得更加准确,让我们知道它可以用byte[]85000 字节 - 12 字节的a 进行复制。

2013年更新

Mario Hewardt(“Advanced Windows Debugging”的作者)在 2013 年告诉我们,.NET 4.5.1 现在也可以压缩 LOH,如果我们告诉它这样做的话。由于默认情况下它是关闭的,除非您已经意识到它,否则问题仍然存在。

2015年更新

我不能再重现这个byte[]例子了。使用简短的蛮力算法,我发现我必须减去 24(byte[84999-24]在 SOH 中,byte[85000-24]在 LOH 中):

    static void Main(string[] args)
    {
        int diff = 0;
        int generation = 3;
        while (generation > 0) …
Run Code Online (Sandbox Code Playgroud)

.net c# debugging windbg out-of-memory

2
推荐指数
1
解决办法
403
查看次数

标签 统计

.net ×1

c# ×1

debugging ×1

out-of-memory ×1

windbg ×1