Windows上任何单个进程可以处理的最大内存量

29 c# memory windows

Windows版本的内存限制可以回答Windows上任何单个进程可以解决的最大内存量:

在32位版本的Windows上,单个进程可以映射并处理不超过3GB的虚拟内存.在64位版本的Windows中,32位进程可以一次映射和处理不超过4GB的虚拟内存.

对于64位进程,该数量很难计算,因为根据各种因素可能存在许多重叠限制.它通常约为7TB.

我的问题:如何验证"3GB","4GB"等值?

我们可以写一个C#代码来证明吗?有没有办法呢?

谢谢.

Sta*_*lot 32

Mark Russinovich发布了一个关于Windows内存资源的多部分系列,真的很好地涵盖了这一点.你可以在这里找到它:http: //blogs.technet.com/b/markrussinovich/archive/2008/07/21/3092070.aspx

他介绍了为什么限制是它们的原因,以及测试.测试的代码在某个地方的管中浮动.

如果你想了解内存资源以及从泄漏各种类型可以看到的问题,这是一个很好的阅读.

但是,简而言之,32位操作系统上的32位:2 GB,除非设置为大地址空间感知,在这种情况下为3 GB.64位操作系统上的32位:2 GB,除非设置为大地址空间感知,在这种情况下为4 GB.

64位进程:2 GB,除非设置为大地址空间感知,在这种情况下它可以解决高达8 TB,除非它托管在基于Intel Itanium的系统上,限制为7 TB.

Microsoft声明了各种限制(按口味和类型):http: //msdn.microsoft.com/en-us/library/aa366778.aspx