当您的应用程序开始耗尽内存时,您会怎么做?

时间:2011-09-19 14:44:24

标签: c++ memory windows-7

我有一个C ++图形应用程序,可以对模型进行繁重的计算。有一个leak or two,我已经追溯到CG和/或我的ATI显卡(我100%确定!!)。我的机器有16 GB RAM,当我使用4.49 GB RAM(TOTAL系统使用,app只使用~1.9GB)时,vector.resize()开始返回0个新元素而无法调整数组大小。为什么这么快?

3 个答案:

答案 0 :(得分:3)

(Windows Assumed)

32位Windows应用程序限制为大约2.0 GB的用户模式内存(如果设置了某些启动时参数,则为3.0 GB)。如果你的应用程序耗尽了1.9 GB的内存,那么它就会干涸。

参考:http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx#memory_limits

答案 1 :(得分:1)

我将构建配置更改为x64,应用程序正常运行

答案 2 :(得分:0)

抛出异常! 当然,最好找到并标记泄漏,但是当你的内存不足时:异常!为了更加冷静,请重新启动您自己的应用程序。