内存泄漏检测工具.和一些内存管理建议

本文介绍了两种内存管理工具:BoundsChecker和VisualLeakDetector的使用经验,并分享了一种通过自定义内存管理方法来确保程序内存安全的做法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有娃问俺."哥们都用什么内存工具哦"..我的回答基本上都是 重载new 计数来肉眼观察.为推荐方式.但是前提是使用这两个玩意 boundschecker和Visual Leak Detector之后啦.用了这两个.最起码能省很多功夫.

 

.bc经常误报..本人用vs2003+bc7.2. vld还不错啦.目前单线程没发现啥问题.多线程就不知道了.写的不多.

 

boundschecker7.2可视化效果比较好啦.界面个个方面都很不错,就是有误报...不知道后面的版本怎么样.估计也很不错了.就是找D版的 找不到惆怅.

Visual Leak Detector这个东西小巧的很.在 codepoject上面有下载的.相当便捷.只需要包含<vld.h>F5就可以了.输出的内存泄漏警告会在outpu栏显示出来.

 

就说这么多.使用太简单了 也说不出来啥了.就这样.

 

->下面是俺的一些作法.如果有什么更好的建议欢迎来和俺讨论.

 

老实说.俺的终极建议是.自己来写个内存管理.来模拟内存.这样最保险.而且还可以在无计可施的情况下.豪放的把整个buffer给咔嚓了.多线程下就不好写了.单线程还是比较简单的.只要用个链表 重载new之后.都往这个链表里面插入. delete释放的时候 释放链表里面的数据.当链表为空 就是说都干净了..这种方式比 计数来的 统一一些.最重要的是.比较无脑了..实在不爽了.直接把 这个链表里面的内存都释放了就ok了..别忘了 链表是 void*的, class的第一个变量要标明类型.相当于一个注册类型的方式.释放的时候.delete后面的类型一样要和要释放的类型保持一致.不然就会遭天谴了.如果会使用boost的,可以使用boost的数据结构来存储类型不同的指针.这样语法上面更直白一些.boost的pool还没有真正用过.不过也是做相同的内存管理方面的事情.

如果更另类一点.可以把lua吸收进来.用lua写就不会有这个问题了.lua是有垃圾回收的..

 

如果不太明白.加我的Q群.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值