为什么我的MFC程序这么占内存?

来源:百度知道 编辑:UC知道 时间:2024/05/27 13:06:12
IDE是VS2005,程序就是一个平常的单文档程序,UNICODE的字符集的,就定义了10个对话框,还有一些WCHAR[]的字符串可能会比较占空间,但运行程序后查看内存占用情况,物理内存7M,但居然占用了1G的虚拟内存,我再怎么定义字符串顶多就是几M吧,能定义1G的字符串还是很有难度的,而且是程序一运行就出现这个问题,应该不存在内存释放的因素吧,非常诡异,不管是DEBUG还是RELEASE都一样,不管是在IDE里面运行还是手动执行,也一样。。
我使用单步启动,第一句还在MFC库中就已经占用那么高的内存了,那个时侯可能APP还没构造呀,这是怎么回事啊

你可以用Process Explorer查看到底什么占用了1G的虚拟内存;如果大部分被占用的是Sharable的,那说明是系统调用的DLL。对于那些不是你程序经常使用的DLL,可以考虑使用链接选项/delayload。

你要多注意一下在一些FOR或WHILE循环里面是不是申请了什么资源没有释放,也要注意一下OnDraw里面创建了的对象是不是没有释放
===============
不是吧……可惜我这里没装VS2005……只有2003版的……你试试REBUILD一下工程吧

也有可能是系统的问题呢,你重新建立一个单文档的工程,直接运行,看一下情况再说