当应用程序的内存使用量超过1.3GB时,我的c#应用程序中出现了内存不足异常。
我在具有3gb内存的32位计算机上遇到了同样的问题,那时还可以,但是现在我将硬件升级到了具有16GB内存,高端主板和RAM但内存不足的64位计算机1.3GB之后仍会发生异常!
我知道没有单个对象超过2GB,无论如何,1.3小于2GB,因此单个对象的内置MS 2GB限制不太可能成为问题…
似乎当应用程序达到一定的内存使用量阈值时,会有某种Windows停止开关……那么也许应该有一种方法可以在注册表中进行配置?
任何帮助将不胜感激!
除非您 编译 为相同的目标体系结构,否则没有任何区别。我 想 您32在两种情况下都针对位架构进行编译。
32
值得一提的是,OutOfMemoryException如果您2GB在CLR(例如List<T>)上在体系结构32和64位上都获得了单个集合分配的内存,那么也会引起这种情况。
OutOfMemoryException
2GB
List<T>
64
为了能够从64位架构的内存优势中受益,您必须 编译 针对64位架构的代码 。之后,自然地,您的二进制文件将 仅64在位上运行,但将受益于RAM中有更多可用空间的可能性。