64位内存不足

时间:2013-07-23 11:29:53

标签: c# c#-4.0 64-bit out-of-memory

我试图创建以下数组

int numOfArrays = 50000;
int lengthOfArrays = 13500;

long[,] unsortedNumbers = new long[numOfArrays,lengthOfArrays];

但我不断得到一个内存异常。我瞄准x64,我相信我设置了大地址感知标志,看到图片,但我仍然得到错误。奇怪的是,我在同一个程序中有一个列表,消耗16gig的ram而没有任何问题。

系统:

64gig ram

高清100g免费。

1 个答案:

答案 0 :(得分:10)

在.NET Framework中有4G及以下的2Gig限制......但在4.5中你可以用gcAllowVeryLargeObjects增加限制。

您正在分配:

50000 * 13500 * 8 = 5400000000字节= 5.029千兆字节

如果您没有使用NET 4.5,那么根据您的使用场景,您可以使用BigArray代替: