当我达到1GB时OutOfMemoryException

时间:2010-01-05 01:27:13

标签: .net out-of-memory

当TaskMgr.exe说我的进程只占用了大约1GB的内存时,有谁知道为什么我会得到一个OutOfMemoryException?

4 个答案:

答案 0 :(得分:5)

可能会isn't enough contiguous free memory做你想做的事。

请参阅here

答案 1 :(得分:2)

如果您想要一个比Taskmanager更好的工具,请从MS下载The SysInternals Suite并使用 Process Explorer Utility 来监控您的应用在运行时的情况。选择查看 - >选择列 - >处理内存并设置要监控的列。它可以让您更好地了解内存中发生的事情。

据说我的赌注是你的堆中缺少连续的内存是问题所在。

答案 2 :(得分:1)

如果没有定义交换空间,增加虚拟内存大小可能有所帮助。

另外,要意识到,当您使用.NET时,32位.NET代码的进程内存限制往往远低于理论限制。在1.2GB和1.6GB的内存使用量之间开始接收内存不足错误是很常见的 - 远低于理论上的2GB限制。 (即使分配了一小块内存,也是如此。)

迁移到64位平台很可能会消除这个问题。 (你的1GB可能也不完全准确 - TaskMgr在估算内存分配方面做得很差。)

答案 3 :(得分:0)

可能是IDE限制了您可以使用的内存量吗?在这种情况下,您可以提供运行参数以扩展可用内存量。至少,这就是它在日食中的表现。