【发布时间】:2010-03-10 08:34:06
【问题描述】:
听说.Net Array 的大小有硬性限制。据说可以分配给Array对象的任何单个实例(无论是int[]、double[]还是您自己的数组)的最大内存量为2GB。不,如果你有一台 64 位机器,2GB 的限制仍然存在。
我不确定我的印象是否正确。任何人都可以确认?
【问题讨论】:
-
哇,你开始了一场有趣的讨论。
-
如果它让您感觉更好:非托管代码也存在 2GB 限制。这是 x64 指令集中的一个约束,索引偏移寻址仍然对偏移有 32 位的限制。不是不能克服,只是这样做效率很低。
-
Hans Passant:我在我的 x64 应用程序中使用 C++ 非托管代码使用 malloc 分配 600E6 双精度数组。那是 4.8E9 字节。