Win32 应用程序的虚拟内存地址空间限制是多少?

ath*_*hos 2 windows 64-bit 32-bit virtual-memory

以下是我的理解,如果我对 3GB 部分有错误,请纠正我?

  • win32 应用程序的虚拟内存地址空间限制为 4GB。

  • 每个进程获得的 4GB 内存地址空间中,实际上只有 2GB 可供程序使用;其他 2GB 保留供内核使用。

  • /3GB 启动选项可以允许某些程序使用更多的内存地址空间。

如果这样的 win32 应用程序在 Win64 操作系统上运行,

  • 上述 4GB 总虚拟内存地址空间的限制是否仍然适用?

  • 2GB 的限制仍然适用吗?

  • /3GB 选项是否仍然可用?

谢谢!

And*_*ert 7

参考此处的表格,我们可以看到 32 位应用程序可以具有三种不同的虚拟内存限制:

/LARGEADDRESSAWAREx64 Windows 上的标志链接的 32 位应用程序将获得 4GB 的空间。

/LARGEADDRESSAWAREx86 Windows 上带有/3GB引导标志的标志链接的 32 位应用程序将拥有 3GB 的空间。

在所有其他情况下,32 位应用程序将获得默认的 2GB/2GB 应用程序/内核拆分。