GUN gprof 是一款分析程序运行的工具,可以提供程序调用关系,函数运行次数以及函数运行时间,为程序员最大限度的优化自己的程序提供帮助。记得在《可视化函数调用》中提到了可视化工具graphviz,结合gprof 和graphviz,并利用gprof2dot 可以可视化以上以上信息。
几个工具使用起来都非常方便。使用gprof 只需要在运行参数前加 -g 即可。然后
./test
运行可执行程序,将生成gmon.out 的日志文件(这是程序员也看不懂的二进制文件),使用下面命令
gprof ./test gmon.out >report.txt
生成report.txt 表。
想使用gprof2dot 可视化这个报表就更简单了,在gprof2dot 官网 下载gprof2dot.py 执行(确保你安装了python 和graphviz):
gprof ./test | gprof2dot.py | dot -Tpng -o output.png
怎么样! 是不是生成了一个output.png 的图片,打开看看吧!
下面是几个output.png 的示例:
参考资料
[1] GNU gprof http://www.cs.utah.edu/dept/old/texinfo/as/gprof_toc.html
[2] gprof2dot 源码 http://code.google.com/p/jrfonseca/wiki/Gprof2Dot
[3] 不错的blog http://blog.dccmx.com/2011/01/gprof/