利用 gprof2dot 和graphviz 图形化定位linux c/c++系统性能瓶颈

来源:互联网 发布:电击棍淘宝没有卖吗 编辑:程序博客网 时间:2024/05/05 10:12

 原自点击打开链接

1 下载

 

http://code.google.com/p/jrfonseca/wiki/Gprof2Dot

http://jrfonseca.googlecode.com/svn/trunk/gprof2dot/gprof2dot.py  下载gprof2dot.py

 http://www.graphviz.org/Download_source.php下载源代码graphviz-2.18.tar.gz

3  安装

 Chmod 744 gprof2dot.py

Tar -zxvf graphviz-2.18.tar.gz

  ./configure

 make

  su  -

 make install

 4   编译代码

gcc -pg -g -o uniqueCoreDump uniqueCoreDump.c

5  执行代码生成gmon.out

 

  执行命令产生gmon.out文件

  ./uniqueCoreDump


如果gprof ./uniqueCoreDump有:

gmon.out file is missing call-graph data

 

则表示没有正确的编译选项或者只有一个main函数

 

6  生成图片

 gprof ./uniqueCoreDump  | ./gprof2dot.py -n0 -e0 | dot -Tpng -o output.png


PS:调用dot很有肯呢会报错提示“png”格式无法识别。原因是版本问题, 我下载的是最新版的2.30源码。

解决方法,make uninstall卸载掉,然后用yum安装了2.26版,退出,重新连接ok。

源代码安装默认装在/usr/local/bin/目录下,yum一般装在/usr/bin/目录下,也有可能机器上本身自带graphviz ,结果我又装了一个,而local目录优先级在前面,因此一直出现错误。卸载后若不退出重新加载bash会提示在local目录下找不到dot。