我试图创建以下数组
int numOfArrays = 50000;
int lengthOfArrays = 13500;
long[,] unsortedNumbers = new long[numOfArrays,lengthOfArrays];
但我不断得到一个内存异常。我瞄准x64,我相信我设置了大地址感知标志,看到图片,但我仍然得到错误。奇怪的是,我在同一个程序中有一个列表,消耗16gig的ram而没有任何问题。
系统:
64gig ram
高清100g免费。
答案 0 :(得分:10)
在.NET Framework中有4G及以下的2Gig限制......但在4.5中你可以用gcAllowVeryLargeObjects
增加限制。
您正在分配:
50000 * 13500 * 8 = 5400000000字节= 5.029千兆字节
如果您没有使用NET 4.5,那么根据您的使用场景,您可以使用BigArray
代替: