首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带PAE的.NET OutOfMemory异常

带PAE的.NET OutOfMemory异常
EN

Stack Overflow用户
提问于 2013-11-25 09:43:14
回答 2查看 186关注 0票数 3

我在Windows2003PAE的x86上运行了一个应用程序。操作系统有8GB内存。在应用程序运行过程中,分配了一些内存,当主机进程增长到~1GB,系统内存总量增长超过4GB时,我得到了OOM异常。

当时大约有4GB的RAM空闲,一个进程大约有1GB到2GB的限制。

所以问题是:如果我有足够的空闲内存,那么这个异常的来源在哪里?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-01 08:38:36

重要的不是系统有多少可用内存,而重要的是进程有多少内存可用。因为您的进程是32位进程,所以硬限制为4GB。

所以你没有4GB的空闲内存,系统有。您已经使用了4GB的分配,内存不足。

前进的唯一途径是移动到64位进程。显然,这需要64位系统。

票数 0
EN

Stack Overflow用户

发布于 2013-11-25 09:52:40

还记得在回答‘我的程序使用了多少内存?’的问题时,你还记得吗?没有那么简单,答案取决于你测量的计数器。

我将从开始检查到使用过程监视器工具监视应用程序,并观察:

  • 拜特斯
  • 工作装置
  • 虚拟拜特斯

还请查看那个问题,以找到有关不同内存使用指示符的更多详细信息。

由于我也是WinDbg的忠实粉丝,所以当OOM异常发生时,我会对进程进行一个完整的内存转储,并对其进行详细分析。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20188796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档