c# - 数组内存不足异常

标签 c# arrays out-of-memory

我想创建一个大小为 10^9 的数组,其中每个元素都可以是相同大小的整数。我总是在初始化行收到 OutOfMemoryException。我怎样才能做到这一点?

如果这不可能,请提出替代策略?

最佳答案

在 .net 4.0 或更早版本中,数组限制为 2GB,即使在 64 位进程中也是如此。因此,对于十亿个元素,支持的最大元素大小为两个字节,而 int 为四个字节。所以这是行不通的。

如果你想有一个更大的集合,你需要自己写,由多个数组支持。

在 .net 4.5 中,可以避免此限制,有关详细信息,请参阅 Jon Skeet 的回答。

关于c# - 数组内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14560975/

相关文章:

arrays - 从数组中删除条目

c# - Cassandra 更新 - 'Where' 带有时间戳集群键

c# - 尝试使用 C# 尽可能简洁

c# - User.IsInRole() 仅在 Controller 中始终返回 false

javascript - 如何打开多个 WebSocket 流

java - JAXB 的内存泄漏

c# - C# 和 JavaScript 之间时间跨度差异的解释

javascript - 如何获取对象中包含的数组的长度?

c# - .Except/Yield 返回内存不足异常

Python:使用 numpy 数组时避免内存错误的替代方法?