服务器上出现 .Net OutOfMemory,但桌面上没有

标签 .net memory memory-consumption

在服务器环境中的垃圾收集/内存限制方面,.Net 框架的行为是否可能有所不同?我在具有 32GB 物理 RAM 的 64 位服务器计算机上运行显式 x86 编译的应用程序,并且我的内存不足 (SystemOutOfMemoryException),即使除了该特定应用程序之外什么都没有运行,并且服务器/所有其他应用程序总共使用 520mb。无法在我自己的(客户端 win7)机器上重现该行为。

现在我知道该应用程序是内存密集型的,但为什么它会在服务器上而不是客户端上引起问题?

最佳答案

OutOfMemoryException 在 .NET 中很少(如果有的话)意味着机器字面上内存不足。 OutOfSomeNecessaryCriticalResource 是一个不太容易误导的名称。

OutOfMemoryException 实际上只是意味着无论发生什么问题,程序员都会选择在特定情况下抛出特定异常。例如,简单地对损坏的 JPEG(或 .Net 无法打开的任何文件格式)调用 Image.FromFile(...) 将导致 OutOfMemoryException,不是因为 .NET 内存不足,而是因为这是为无效文件引发的已记录的异常类型(不要问我为什么,因为我不知道)。

要调试您的特定问题,您需要找出引发 OutOfMemoryException 的原因(以及何时何地)。 OutOfMemoryException 本身绝对没有任何意义。

关于服务器上出现 .Net OutOfMemory,但桌面上没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789488/

相关文章:

.net - 是否有 XSLT 可用于将 WordprocessingML 转换为 RTF

PHP数组和内存分配

performance - 就空间消耗而言,MongoDB 复合索引与单字段索引

Linux 上的 Python 内存消耗 : physical and virtual memory are growing while the heap size remains the same

memory - 是否有任何 CPU 具有边界检查的硬件支持?

linux - Node.js 内存消耗 OS X 与 Linux

c# - "Access to the path ' a-guid.8Event ' is denied."启动时

javascript - jquery wcf SOAP 调用失败

c# - wcf 测试客户端不支持此操作,因为它使用 system.threading.tasks.task

java - Java垃圾收集器和内存问题