代码cpu性能统计工具以及内存泄漏检测

一:性能分析
曾经在测试C++代码性能的时候发现代码执行效率比较低,完全没法满足需求,束手无策,后面经过TX的帮助进行定位,解决,颇有收获,遂记录之:
1.首先需要安装好callgrind工具,我安装的是valgrind-3.11.0版本(安装问百度吧)。
2.使用valgrind工具来执行代码,会生成一个callgrind.out.xxx的文件,其中xxx表示进程号
命令:valgrind --tool=callgrind ./a.out (单线程)
    valgrind --tool=callgrind --separate-threads=yes ./a.out (多线程)
3.然后使用kcachegrind-callgrind工具在windows下就可以看看哪些地方比较耗cpu,然后进行修订。

4.查看效果图

代码cpu性能统计工具以及内存泄漏检测

我遇到问题在图中就可以看出,使用C++中list容器进行删除操作相当耗cpu。于是改为set,性能瞬间提高。

二:内存泄漏检测

命令:valgrind --tool=memcheck --leak-check=yes  a.out

三:linux自带的分析工具gprof

这个工具使用时,需要在编译程序时携带-pg选项,然后执行一次程序,会生成相应的gmon.out文件,然后用gprof去查看结果。

例如:

Gcc -pg -o test test.c
./test
gprof -b test gmon.out |less

注:从本人chinaunix版过来滴,这个性能分析和内存泄漏检测工具个人觉得valgrind非常好用,而且有可视化工具查看结果。