求解程序占用大量内存!!!

y66721986 2014-04-28 12:11:52
各位大哥,我先描述一下问题。
首先我的机器内存是8G的,我的程序运行一晚后任务管理器上物理内存占用60%多,但是进程里边看又才占用60多M,然后把程序关掉以后内存又会释放到30%,很奇怪,不知道为什么会这样,我检查过所有代码,都没有没释放的内存!
程序里边我用了大量的Edit而且不断地向里边写入文本,EDIT默认好像是4W的长度吧,我等到了3W4的长度我就把Edit的内容清空。应该不是EDIT的问题吧。难道把EDIT的内容清空他不会释放内存吗?还是有其它的问题
...全文
381 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
y66721986 2014-05-21
  • 打赏
  • 举报
回复
郁闷 我找错地方了 这个问题还是没解决
y66721986 2014-05-21
  • 打赏
  • 举报
回复
已经找到是另一个地方内存泄漏了,但我没看懂是哪个地方,我另开一个贴提问
y66721986 2014-05-19
  • 打赏
  • 举报
回复
引用 10 楼 reFreever 的回复:
那有没有发现是哪个进程占用这么多的内存的, 或许是你的程序引起其他程序出现的问题呢
就是自己的进程啊,关掉以后任务管理器右下角的物理内存就每2秒减少百分之1直至正常 进程才消失
辰岡墨竹 2014-05-19
  • 打赏
  • 举报
回复
应该是你new了什么字符串之类的对象,忘记delete了。
reFreever 2014-05-19
  • 打赏
  • 举报
回复
那有没有发现是哪个进程占用这么多的内存的, 或许是你的程序引起其他程序出现的问题呢
y66721986 2014-05-19
  • 打赏
  • 举报
回复
引用 2 楼 happyparrot 的回复:
只能将怀疑的地方逐步排查了。或者降低EDIT的使用看看效果
版主您好,我已经注释掉EDIT了 可还是一样,进程显示占用正常,但关掉程序以后右下角的物理内存大幅下降
y66721986 2014-05-19
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
可以注释EDIT功能来看是否它引起的
已经注释,发现不是他的问题… 我很好奇的是他任务管理器中占用是正常的,但是关掉程序以后任务管理器右下角的物理内存占用会大幅下降!所以想请教版主一下什么情况才会这样呢。
shen_wei 2014-04-30
  • 打赏
  • 举报
回复
记得释放资源。。。
fdsdfdsf 2014-04-29
  • 打赏
  • 举报
回复
Edit控件最多64K
快乐鹦鹉 2014-04-29
  • 打赏
  • 举报
回复
只能将怀疑的地方逐步排查了。或者降低EDIT的使用看看效果
LostSpeed 2014-04-29
  • 打赏
  • 举报
回复
用vld查一下吧,用起来很简单. http://download.csdn.net/detail/lostspeed/5013106 明显是内存漏的厉害. 开始vsIDE跑一会,然后正常退出程序,看看IDE中的泄露指示~ //////////////////////////////////////////////////////////////////////////////////////////////////// 超好用的内存泄漏检查工具, 程序在Debug模式下跑一遍.退出时,就能看到具体的内存泄漏发生在哪行. current v2.2.3 date Wed Feb 15, 2012 at 8:00 AM status Stable Visual Leak Detector is a free, robust, open-source memory leak detection system for Visual C++. It's pretty easy to use. After installing it, you just need to tell Visual C++ where to find the included header and library file. Then it can be used with any C/C++ project simply by adding the following line to your code: #include <vld.h> When you run your program under the Visual Studio debugger, Visual Leak Detector will output a memory leak report at the end of your debugging session. The leak report includes the full call stack showing how any leaked memory blocks were allocated. Double-click on a line in the call stack to jump to that file and line in the editor window. It's a very effective way to quickly diagnose, and fix, memory leaks in C/C++ applications. The main difference between the CRT Debug Library and VLD, is that Visual Leak Detector shows you the complete callstack used for memory allocation has led to the leak.
BeanJoy 2014-04-29
  • 打赏
  • 举报
回复
用windbg的UMDH看看哪里泄露吧。
lis2012 2014-04-29
  • 打赏
  • 举报
回复
你自己都觉得没有问题了,还存在这种问题,那就说明还是存在问题的,只是你自己发现不了,上代码
oyljerry 2014-04-28
  • 打赏
  • 举报
回复
可以注释EDIT功能来看是否它引起的

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧