gperftools

gperftools是Google提供的一套工具,其中的一个功能是CPU profiler,用于分析程序性能,找到程序的性能瓶颈。

 

1、安装

gperftools:http://code.google.com/p/gperftools/downloads/list

libunwind:http://download.savannah.gnu.org/releases/libunwind/

64位操作系统需要安装libunwind,官方推荐版本是libunwind-0.99-beta

安装过程:./configure [--disable-shared] && make && make install

Graphviz是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形,gperftools依靠此工具生成图形分析结果。

安装命令:yum install graphviz

 

2、使用

方法有三种:

1、直接调用提供的api:这种方式比较适用于对于程序的某个局部来做分析的情况,直接在要做分析的局部调用相关的api即可。

方式:调用函数:ProfilerStart() and ProfilerStop()

2、链接静态库:这种方式是最为常用的方式,后面会有详细的介绍。

方式:在代码link过程中添加参数 –lprofiler

For example:gcc […] -o helloworld –lprofiler

运行程序:env CPUPROFILE=./helloworld.prof ./helloworld

指定要profile的程序为helloworld,并且指定产生的分析结果文件的路径为./helloworld.prof

3、链接动态库:这种方式和静态库的方式差不多,但通常不推荐使用,除非使用者不想额外链一个静态库(因为链接静态库会增大binary的大小)的情况,可以考虑使用这种方式。

方式:运行时使用LD_PRELOAD,e.g. % env LD_PRELOAD="/usr/lib/libprofiler.so" <binary>(不推荐这种方式)。

Ps:env是linux下插入环境变量的shell命令

 

引用链接:http://www.cnblogs.com/caosiyang/archive/2013/01/25/2876244.html

引用链接:http://www.cnblogs.com/GODYCA/archive/2013/05/28/3104281.html

http://www.cnblogs.com/GODYCA/archive/2013/05/28/3104281.html

http://www.tuicool.com/articles/faaEv2

posted @ 2016-04-26 09:25  zhou09  阅读(1020)  评论(0编辑  收藏  举报