【发布时间】:2014-09-06 19:47:59
【问题描述】:
我想在 32 位操作系统上为整数哈希表声明数组 2^32 大小。告诉我该怎么做? 它给了我内存不足的异常。
【问题讨论】:
-
很高兴看到一些代码或至少告诉我们为什么您需要这样大小的表格
我想在 32 位操作系统上为整数哈希表声明数组 2^32 大小。告诉我该怎么做? 它给了我内存不足的异常。
【问题讨论】:
您根本无法做到这一点。在 32 位 CLR 中,所有对象的大小必须小于 2GB。
即使在 64 位 CLR 中,您也必须指定一个特殊标志来启用更大的数组 (<gcAllowVeryLargeObjects>) - 如果您的数组是整数数组,那么您实际上需要 16GB。您似乎不太可能在 32 位操作系统上拥有这么多物理内存。
您可以通过创建一个由多个较小数组组成的“逻辑”数组来在某种程度上解决这个限制,但我很少认为这是一个好主意。基本上,您应该重新设计或使用更适合您要求的操作系统。我怀疑重新设计可能是最好的方法。
【讨论】: