大型C++工程测试内存泄漏的一些个人总结方法
测试工具:
cppcheck;
valgrind;
实时跑系统工程,查看cpu增加情况;
测试方法:
1)cppcheck测试静态程序方法
通过运行cppcheck可以直观的看到是否有new的指针没有释放;
2)valgring测试方法:
输入指令:Valgrind --tool=memcheck --leak-check=full --show-leak-kinds=all --trace-children=yes -v --log-file=mem_leak.log ./main
注:输入指令后生成mem_leak.log,里面主要看definitely(绝对泄漏)部分,可以定位到内存泄漏的具体位置;
实时长时间运行代码:
测试结果说明
参数说明:VIRT(虚拟内存)、RES(物理内存)、SHR(共享内存值)
注:RES体现内存是否泄露, 当RES随着时间的推移增长时,表示内存泄漏