据我所知 - Windows 中的任何进程都会获得 2 GB 的虚拟内存地址空间(在某些情况下为 3 GB)用于分配用途。
在什么情况下进程将获得 3 GB 而不是 2 GB? 应用程序开发人员是否可以通过某种方式“要求”操作系统分配超过 2/3 GB 的虚拟地址空间?
如果进程需要超过 3/2 GB 会怎样? (我猜系统会遇到一些“内存不足异常”——但有什么方法可以避免这种情况吗?)
例如 - 如果进程是“Microsoft SQL Server”,需要分配比 2/3 GB 多得多的内存,会发生什么
最佳答案
一个 32 位进程有 4 GB 地址空间,其中通常为硬件保留 1 GB,为 Windows 保留 1 GB。使用 switch in boot.ini您可以让 Windows 为进程提供 3 GB 的地址空间。
一个 64 位进程有 16 PB 地址空间。我不知道其中有多少是保留的,但可用地址空间比 2 或 3 GB 大得多。
关于.net - 如果某些进程需要分配超过 2 GB 的内存,会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201838/