我编了一个很大的程序,大概有几万行吧,里面开了六七个线程。
这个程序短时间里运行还比较正常,但是长时间运行,如两天后,程序当执行某一个功能就会不响应了。还有一个现象,就是,如果退出这个程序,系统会退很长时间(硬盘响很长时间),在这段时间里,你无法把新的程序覆盖到原来的这个程序上(好像程序没有完全退干净),只有等程序完全退干净后,你才可以覆盖。
另,我查了一下任务管理器,发现长时间运行后的“页面错误”有很多。(不过我看瑞星的RavMon.exe更多),不知道和这个有没有关系。
还有一个可以想到的方面不知道是不是,就是在程序里面用了很多CString类,会不会是导致这个问题的原因(因为我看到有的文章说CString可能导致内存泄露)?如果不是的话,应该怎么查呢?
敬请大家给以指导。
这个程序短时间里运行还比较正常,但是长时间运行,如两天后,程序当执行某一个功能就会不响应了。还有一个现象,就是,如果退出这个程序,系统会退很长时间(硬盘响很长时间),在这段时间里,你无法把新的程序覆盖到原来的这个程序上(好像程序没有完全退干净),只有等程序完全退干净后,你才可以覆盖。
另,我查了一下任务管理器,发现长时间运行后的“页面错误”有很多。(不过我看瑞星的RavMon.exe更多),不知道和这个有没有关系。
还有一个可以想到的方面不知道是不是,就是在程序里面用了很多CString类,会不会是导致这个问题的原因(因为我看到有的文章说CString可能导致内存泄露)?如果不是的话,应该怎么查呢?
敬请大家给以指导。
解决方案 »
- 用CreateFont在对话框中显示自定义字体,动态修改显示的字,重绘刷新不正常,需要最小化再开启后才能看到更新。
- 关于使用Cximage的问题
- 请问在MFC中如何添加鼠标的消息响应
- 关于TCP禁止自动组包问题
- 访问某个进程的寄存器和堆栈问题
- 如何建立非模式对话框???????????????????
- 请问高手:为什么我用SetupDiEnumDeviceInterfaces死都没有结果?
- 游戏程序员在中国的地位如何?好像没有国外的高?
- 动态添加菜单的问题
- 高分求 :在dos622下用bc++31开发sqlserver7程序的库文件(bldblib.lib)
- 如何清除这个菜单?
- 最简单的WIN32 SDK 小问题,只要会WIN32 的都知道为什么,但是我不知道~,顶也有分~
硬盘长亮,是因为,当你的物理内存不路时,你的进程就开始动用了虚存,也就是硬盘,当它们总数到达4gb时,就当机了。当机后,系统要还原这堆内存,所以你的硬盘正在做删除处理。祝你好运~~
这样的情况下,boundchecker有时检查不出来的,还有就是有没有画图的程序,没有选回原来画笔,画刷什么的
还有没有句柄没有关闭的,没有访问注册表时没有关闭的
还有类似画笔,画刷,位图这样的资源句柄有时释放的时机要恰倒好处,有时不是当时使用完就马上释放,还要考虑自己程序里当前CDC环境的生命作用周期,如果使用完马上释放,CDC环境改,有时程序的功能可能会出问题,只能等到最后某个时候来释放,所以才会出现放到后来忘记释放或释放不全的问题!