Я думал, что максимальное пространство пользователя для 64-битного процесса составляет 8 ТБ, но я сделал небольшой тест, и максимум, который я смог получить, составляет 10-11 ГБ.
Примечание. Мне не нужно столько памяти в процессе, я просто хочу понять, почему из любопытства.
Вот моя тестовая программа:
static void Main(string[] args)
{
List<byte[]> list = new List<byte[]>();
while (true)
{
Console.WriteLine("Press any key to allocate 1 more GB");
Console.ReadKey(true);
list.Add(new byte[1024 * 1024 * 1024]);
Console.WriteLine("Memory size:");
double memoryUsage = Process.GetCurrentProcess().PeakVirtualMemorySize64 / (double)(1024 * 1024 * 1024);
Console.WriteLine(memoryUsage.ToString("0.00") + " GB");
Console.WriteLine();
}
}
EDIT:
Обновленная тестовая программа будет более детерминированной.
Чтобы принять ответ, я хотел бы знать, как рассчитывается реальная максимальная выделенная память, если 8TB является только теоретическим.