首页 > 解决方案 > 扩展 Windows 进程内存限制

问题描述

我是 stackoverflow 和 C/C++ 的新手。

在 Windows 中尝试编程时,我注意到一个进程可以分配多少内存有一定的限制,我想知道如何扩展它。

预先感谢您的帮助

标签: windowsmemorymemory-management

解决方案


你有一些选择:

这适用于 x86 Windows: 32 位进程的内存限制为 2GB。但这可以通过使用 BCD 标志引导系统来增加到 3GB /INCREASEUSERVA 3072。不过,这有一些怪癖。在 32 位系统上,4GB 内存是拆分的,2GB 用于用户模式,2GB 用于内核模式。现在,用户模式为 3GB,内核模式为 1GB。这很好,但有时内核驱动程序需要比所需更多的堆空间,为内核模式填满了 1GB。

您还可以使用地址窗口扩展。这允许您使用大于 4GB 的物理内存,同时仍使用 32 位地址。如果您想将进程保持为 32 位,这可能是一个不错的选择。

最后,只需将您的程序编译为 64 位。您删除了地址的用户模式地址模式限制,由于没有 x86 虚拟 CPU,因此开销更少,并且您还获得了增强的安全缓解措施。


推荐阅读