問題是有關在.net中分配數組的問題。我有一個示例程序,其中最大的數組我可以得到的長度。我將長度增加到+1,它給出了內存異常。但如果我保持長度並刪除評論,我可以分配2個不同的大數組。兩個數組都少於.net允許的對象大小2 GB,並且總內存也少於虛擬內存。有人可以提出任何想法嗎?.NET中的數組分配
class Program
{
static int length = 203423225;
static double[] d = new double[length];
//static int[] i = new int[15000000];
static void Main(string[] args)
{
Console.WriteLine((sizeof(double)*(double)length)/(1024*1024));
Console.WriteLine(d.Length);
//Console.WriteLine(i.Length);
Console.WriteLine(Process.GetCurrentProcess().VirtualMemorySize64.ToString());
}
}
類似於http://stackoverflow.com/questions/827015/max-size-of-net-arrays – RQDQ 2013-02-12 13:11:19
你期望什麼?最大數組大小取決於系統條件,並且不斷更改條件。 – 2013-02-12 13:13:15
如果它是爲32位編譯的,在.NET中,你往往會在1.2-1.6GB左右出現內存不足錯誤;看到你創造了大約1.55GB的雙打,這並不奇怪。看到這個更多的信息:http://stackoverflow.com/questions/1087982/single-objects-still-limited-to-2-gb-in-size-in-clr-4-0 – 2013-02-12 13:15:01