【发布时间】:2011-09-01 23:49:21
【问题描述】:
问题是这样的:当我的 Web 服务器启动时,它会创建几个包含非常小的对象(如 1-2-3 个整数)的冗长(20M 元素)数组。任何单个数组的累积大小不大于 2GB(CLR 的限制,请参阅下面的链接了解详细信息)。 w3wp.exe 的内存使用量确实增长了接近 2GB(永远不会超过)。代码在Any CPU 平台模式下编译,并在具有 8GB RAM 的 Windows 7 x64 上运行。
到底是什么导致在创建我的列表时抛出 OutOfMemoryException ?如果我通过 IIS 或 VS 托管进程,会有什么不同吗?这似乎没有发生是PROD,但我一直在我的开发机器上遇到这种情况。 (现在将尝试重新启动...)
这可能是相关的,但我似乎没有那么大的对象: Very large collection in .Net causes out-of-memory exception
编辑: 在 IIS 或 VS 中运行确实有所不同——在 IIS 中启动进程时看不到这种情况。那么会不会是 VS 调试器的限制呢?
【问题讨论】:
-
对我来说听起来像是一个无限循环。
-
计算机上没有任何事情发生“无缘无故”。计算机完全按照他们的指示去做,除了硬件故障、杂散的宇宙射线或闪电之外,别无其他。
-
@Mike 只是要写那个:P
-
@Mike Hofer:我猜“没有明显的原因”......今天的太阳活动有点低。更像是不存在的。 @Paul Alan Taylor:PROD 中不会发生无限循环,对吧?
标签: c# .net webserver out-of-memory large-data