内存泄露问题

[复制链接]
1154|5
 楼主| dfsa 发表于 2013-8-28 19:04 | 显示全部楼层 |阅读模式
我写的代码C++。在vs2003 的debug模式下运行,关闭的时候没有提示Detected memory leaks! 但是还是不放心 ,
有没有分别检测 判断 是哪种内存泄露方法,解决方式。
1. 常发性内存泄漏。
2. 偶发性内存泄漏。
3. 一次性内存泄漏。
4. 隐式内存泄漏。
求具体教程
无冕之王 发表于 2013-8-28 19:21 | 显示全部楼层
网上找一下,很多工具的。
baidudz 发表于 2013-8-28 19:50 | 显示全部楼层
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
秋天落叶 发表于 2013-8-28 20:03 | 显示全部楼层
内存分配,在程序设计上是个漫长的话题。

我一般不太喜欢依靠分析工具来去解决这个问题。

这需要点特殊的方式。一般我们会用内存池去解决。这跟传统的new和delete背道而驰。

内存池一般用页分配方式。这样,你说的4种情况,只会变成1种情况。要么系统稳定在某个内存标准。要么就会疯狂的暴涨。

由于内存池的粒度非常的大,你可以在上面写一些分析工具,而不影响系统的正常运行。有时候小粒度分析会让系统性能暴降,完全看不懂应该发生的问题。当然,使用这种方式,你就别指望程序里出现new和delete了。有时候,真是有点矛盾。
无冕之王 发表于 2013-8-29 19:49 | 显示全部楼层
这个网上应该有很多这样的教程
yybj 发表于 2013-8-29 20:03 | 显示全部楼层
内存泄露是C++编程很容易犯的错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部