doclist 阅读(273) 评论(0)
        前面介绍过用gprofValgrind之Callgrind来分析程序性能,但是文本格式的输出报告,对于小估摸程序而言可能已经够了,但是对于大估摸程序而言,就显得有点不尽人意了,如果能够实现分析结果可视化,那将会比较惬意。
        实际上,用python和dot就能达到可视化的要求。dot是graphviz提供的一个命令工具,其安装非常简单:
        #yum install graphviz
        此外,还需要下载gprof2dot.py脚本以将文本格式的性能数据报告转换为图形化的函数调用时间图。
        点击上面连接下载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