im trying to create the following array
int numOfArrays = 50000;
int lengthOfArrays = 13500;
long[,] unsortedNumbers = new long[numOfArrays,lengthOfArrays];
but i keep getting the out an memory exception. Im targeting x64, i believe ive set the large-address-aware flag, see pic, yet im still getting the error. Odd thing is, i have a list in the same program which consumes 16gig of ram without any issues.
System:
64gig ram
100gig free on hd.
There's a 2Gig Limit on the size of objects in the .NET runtime for both 32bit and 64bit processes.
But in NET 4.5 you can increase the limit of NET code which is running on the runtime in a 64bit process with gcAllowVeryLargeObjects
.
Your NET code will be running as 64bit if:
You are allocating:
50000 * 13500 * 8 = 5400000000 bytes = 5.029 gigabytes
If you don't have the luxury of using NET 4.5 then depending on your usage scenario you may be able to use BigArray
instead: