Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Large array C# OutOfMemoryException

For my programming exercise in C#, I am trying to create an array of long, with a length of 0x1fffffff (536,870,911 in base10), however I got System.OutOfMEmoryException.

For the build, I targeted x64 system, and I am running VisualStudio2008 on Windows7 x64 with 8GB of RAM. It should be enough memory for the array (it works on JDK x64 and CPP project)

Any thoughts ?

        const long MAX = 0x1fffffff; // 536870911 in base10
        program.arr = new long[MAX];
        for (long i = 0; i < MAX; i++)
        {
            program.arr[i] = i;                
        }
like image 964
Lydon Ch Avatar asked Apr 26 '11 14:04

Lydon Ch


1 Answers

The CLR doesn't support any single object of size greater than about 2GB. You're asking for an array of 4,294,967,288 bytes - over twice what's supported.

You can use that much memory, but not in a single object (such as an array).

like image 53
Jon Skeet Avatar answered Oct 05 '22 03:10

Jon Skeet