64位内存不足

Han*_*del 4 c# 64-bit out-of-memory c#-4.0

我试图创建以下数组

int numOfArrays = 50000;
int lengthOfArrays = 13500;

long[,] unsortedNumbers = new long[numOfArrays,lengthOfArrays];
Run Code Online (Sandbox Code Playgroud)

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

系统:

64gig ram

高清100g免费.

Col*_*ith 10

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

你正在分配:

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

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

  • @Anirudh(50000*13500*8)/(1024 ^ 3)= 5GB (3认同)