我有一个应用程序在带有 PAE 的 Windows 2003 x86 上运行。操作系统有 8 GB RAM。 在应用程序运行期间分配了一些内存,在主机进程增长到 ~1GB 并且总系统内存增长超过 4GB 后,我遇到了 OOM 异常。
当时大约有 4GB RAM 可用,单个进程大约有 1GB 到 2GB 的限制。
所以问题是:如果我有足够的空闲内存,这个异常的来源在哪里?
最佳答案
重要的不是系统有多少内存可用,而是您的进程有多少内存可用。由于您的进程是 32 位进程,因此硬性限制为 4GB。
所以你没有 4GB 空闲内存,系统有。您已经使用了 4GB 的分配并且内存不足。
前进的唯一途径是转向 64 位进程。显然,这需要 64 位系统。
关于c# - PAE 的 .NET OutOfMemory 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188796/