关于内存释放求教
整个mapHashTimeAvgSrcSpeed共占用了2GB的内存,但为何1个多小时了,还没释放呢?内存一点都没有减少啊 c++
[解决办法]
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
VMMap 是进程虚拟和物理内存分析实用工具。http://technet.microsoft.com/zh-cn/sysinternals/dd535533
[解决办法]
//换这样试试
HeapFree(GetProcessHeap(),0,pBlick);
提醒:
1 A pointer to the memory block to be freed.
This pointer is returned by the HeapAlloc or HeapReAlloc function
2 HeapAlloc或者 HeapRealloc之后,如果这段内存不再用了,应该立即调用HeapFree来释放!