c# - PAE 的 .NET OutOfMemory 异常

标签 c# .net out-of-memory

我有一个应用程序在带有 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/

相关文章:

C#用 Elasticsearch 计算地理距离(nest 2)

c# - 将带方括号的字符串解析为json

c# - 以列表为参数的重载函数

go - GKE容器被 'Memory cgroup out of memory'杀死,但监视,本地测试和pprof显示使用量远低于限制

java - 如何在jtable中加载1000+图像而不出现java.lang.OutOfMemoryError : Java heap space exception

Python - 减少大型 CSV 文件的导入和解析时间

c# - 统一下载后如何检查可寻址 Assets 或场景是否被缓存?

c# - 如何根据 swift 方法将 C# 方法三重化

c# TrimEnd 删除超过需要的?

c# -\n 是否等同于 .NET 中的 Environment.NewLine?