我有一个在带有PAE的Windows 2003 x86上运行的应用程序。操作系统具有8 GB RAM。
在应用程序运行期间,会分配一些内存,并且在主机进程增长到约1GB并且系统总内存增长到超过4GB之后,我遇到了OOM异常。
当时大约有4GB的可用RAM,单个进程的限制为1GB至2GB。
所以问题是:如果我有足够的可用内存,此异常的来源将在哪里?
最佳答案
重要的不是系统有多少可用内存,而是重要的是您的进程有多少可用内存。由于您的进程是32位进程,因此硬限制为4GB。
因此,系统没有4GB的可用内存。您已使用了4GB的分配空间,而内存不足。
前进的唯一方法是转到64位进程。显然,这需要64位系统。