淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

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

上一篇 / 下一篇  2008-04-15 21:46:04 / 个人分类:搜索引擎测试技巧

这个技巧从开发那里学来的。

这帮GG寻找好东西的能力一流 :)

 

 

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

 

2  环境

[admin@b2bsearch80 bin]$ python -V

Python2.3.4

[admin@b2bsearch80 bin]$ gcc -v

Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs

Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux

Thread model: posix

gcc version 3.4.6 20060404 (Red Hat3.4.6-3)

[admin@b2bsearch80 bin]$ uname -a

Linux b2bsearch802.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux

 

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

ll gmon.out

 

如果gprof ./uniqueCoreDump有:

gmon.out file is missing call-graph data

 

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

 

 

 

6  生成图片

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

 

  sz  output.png 

 

 


TAG: Gprof2Dot graphviz 性能优化 linux gcc 搜索引擎测试技巧

阿里巴巴一个测试架构师 引用 删除 liangjz   /   2009-10-23 23:52:06
呵呵,楼上的黄同学好眼力.本来有很炫目的图片,可以一眼看清楚本质,这个BLOG不够方便图片同步上传.

好东西虽多,但真正能整合入日常研发测试流程并大幅度应用产生价值的就少了, 相信量变产生质变,长此以往效率及质量必然提升
sihanjishu的个人空间 引用 删除 sihanjishu   /   2009-09-18 16:26:10
好文,我正在封装工具,争取提供出一个命令给研发使用。
今天听了你的演讲。感觉我们的路还很长。
我会把你的ppt消化下,争取把流程化的东西抽取出来用。
 

评分:0

我来说两句

Open Toolbar