实际上,用python和dot就能达到可视化的要求。dot是graphviz提供的一个命令工具,其安装非常简单:
#yum install graphviz
此外,还需要下载脚本以将文本格式的性能数据报告转换为图形化的函数调用时间图。
点击上面连接下载gprof2dot.py脚本后,需要改变其为可执行权限,并将该脚本添加到$PATH路径中的任意目录下(比如:/usr/bin),以便于直接在终端下执行gprof2dot.py:
#cp gprof2dot.py /usr/bin
#cd /usr/bin
#chmod +x gprof2dot.py
所有步骤都妥当后,就可以开始转换了:
#python gprof2dot.py log.txt | dot -Tsvg -o log.svg
其中,log.txt为前文中gprof或者Valgrind-Callgrind输出的文本报告,log.svg就是图形化结果:

很帅吧
当然还有更快捷的方式来生成图形结果:
#gprof ./test | gprof2dot.py | dot -Tsvg -o log.svg
或者
#gprof2dot.py -f callgrind callgrind.out.xxx |dot -Tsvg -o log.svg