【发布时间】:2011-03-08 20:21:13
【问题描述】:
我有一个相当简单的 C# 应用程序,它构建了一个大型哈希表。这个哈希表的键是字符串,值是整数。
程序运行良好,直到大约 1030 万个项目被添加到哈希表中,这时在向哈希表添加项目的行上抛出内存不足错误。
根据任务管理器,我的程序只使用了 797mb 的内存,还有超过 2gb 可用。它是一台 32 位机器,所以我知道一个进程总共只能使用 2gb,但仍然留下了大约 1.2gb 的哈希表应该能够扩展到的空间。
为什么会抛出内存不足错误?
【问题讨论】:
-
顺便说一句,我希望你明白这与 C# 无关?
-
@John:但也许/可能它与 .net 相关。
-
@Lorenzo:这就是我的观点。不是 C#,而是 .NET
-
为什么在运行时需要 1030 万个哈希表中的项目?
-
这并不总是意味着没有更多的内存。有时我让我的应用程序抛出 OutOfMemoryException 只是为了扰乱运营团队:P