我有一个应用程序在代码的某些部分使用“new”分配内存并使用“delete”释放它们。 问题是,每当它超过系统的内存限制(比方说 2GB)时,Windows 就会向进程发送一个 Kill 信号。 我认为这不常见,因为它应该使用交换空间(我认为在 Windows 中它被称为虚拟内存),对吧? 我的应用程序是用 C++/Visual Studio 编写的。
最佳答案
Here is how you can make it up to 3GB for a process ;这是 32 位 Windows 应用程序可以拥有的绝对最大值。除此之外,您将需要使用 64 位版本的 Windows。
那是很大的内存。也许您可以考虑将您的应用拆分为多个进程并在它们之间进行通信。
关于C++ 应用程序超出内存但不使用虚拟内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3451765/