查内存泄露之打印程序对象个数
2010年10月1日
没有评论
当程序中的对象使用了智能指针后,很有可能因为互相引用导致的内存泄露,这个时候,可以在程序运行过程中打印出每个对象的个数。原理就是自己写一个map,索引是对象的名字,值为个数,每次构造的时候++,每次析构的时候–。大概代码如下:
当程序中的对象使用了智能指针后,很有可能因为互相引用导致的内存泄露,这个时候,可以在程序运行过程中打印出每个对象的个数。原理就是自己写一个map,索引是对象的名字,值为个数,每次构造的时候++,每次析构的时候–。大概代码如下:
最近在一个项目中,被测试组人员检测出来GDI对象导致内存泄露,之后,经过代码的走读,确实发现存在这样一个问题。
首先是现象,在一些项目中,如果发现图片,图标等突然显示不出来,就有可能是GDI对象已经满了,这个事情,用任务管理器,把GDI对象打开,就可以看到了,如果GDI对象迅速上涨,就基本可以确认是GDI对象导致内存泄露。
近期评论