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

最近有娃问俺."哥们都用什么内存工具哦"..我的回答基本上都是 重载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群.

你可能感兴趣的:(多线程,数据结构,delete,lua,工具,leak)