valgrind --tool=callgrind --dump-instr=yes ./foo # ,这里会运行很久,执行完毕后会生成一个callgrind.out.126651
1如果你调试的程序是多线程,你也可以在命令行中加一个参数 -separate-threads=yes。这样就会为每个线程单独生成一个性能分析文件。如下:
valgrind --tool=callgrind --separate-threads=yes ./test
生成的文件除了callgrind.out.31113外,还会多出一些子线程的文件。文件名如下:
callgrind.out.31113-01 callgrind.out.31113-02 callgrind.out.31113-03
用kcachegrind 打开callgrind.out.10798 ,即显示下面图 (在 ubuntu上也可以直接 aptitude install kcachegrind安装)
LINUX: http://kcachegrind.sourceforge.net/html/Home.html
windows: https://sourceforge.net/projects/precompiledbin/files/?source=navbar
用winscp 把callgrind.out.126651 拷贝到windows下
kcachegrind callgrind.out.10798
或者
打开 callgrind.out.10798