gpt4 book ai didi

.net - .Net为什么在x64进程中不能获得超过11GB的已分配内存?

转载 作者:行者123 更新时间:2023-12-03 14:56:06 25 4
gpt4 key购买 nike

我以为64位进程的最大用户空间是8TB,但是我做了一点测试,可以得到的最大用户空间是10-11GB。

注意:我不需要一个进程那么多的内存,我只是想了解为什么出于好奇。

这是我的测试程序:

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();
}
}


编辑:

更新了测试程序,使其更具确定性。

要接受答案,我想知道如果8TB仅是理论上的话,实际最大分配内存是如何计算的。

最佳答案

最高可达8 TB,而不是8 TB。您可能最多可能有8 TB,但需要匹配的RAM /交换文件。

关于.net - .Net为什么在x64进程中不能获得超过11GB的已分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2052019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com