按照 http://www.cnblogs.com/persistentsnail/p/3294843.html,yum安装gperftools-devel 和 libunwind
安装gperftools-devel的时候,同时就安装了 gperftools。如何使用,主要参考了 https://wiki.geany.org/howtos/profiling/gperftools,才入的门,回头再看第一个链接,很多地方就能看懂了。
方式1
静态连接profiler
有的时候我们需要静态连接profiler库(比如在嵌入式系统下做性能分析).根据gperftools的官方说明:README,静态连接profiler不能使用profiler.a静态库,要用libtcmalloc_and_profiler.a替代。
对第二个链接,我的libprofile.so是装到/usr/lib64下的,必须要执行:
LD_PRELOAD=/usr/lib64/libprofiler.so CPUPROFILE=/tmp/geany.prof geany, 忽略 LD_PRELOAD是不行的。(有的参考资料不需要这个,这有待将来验证)
看分析结果:
pprof --web /usr/bin/geany /tmp/geany.prof
里面同时提到可以不从一开始就做性能分析,
LD_PRELOAD=/usr/lib64/libprofiler.so CPUPROFILE=/tmp/geany.prof CPUPROFILESIGNAL=12 geany
想要做分析的时候,发送信号: killall -12 geany
想停止分析,同样发信号: killall -12 geany
最后看分析结果: pprof --web /usr/local/bin/geany /tmp/geany.prof.0
注意最后有个0。
本来带打算对自己的模块:加入 http://blog.csdn.net/zougangx/article/details/8836749 提到的方法,对特定的程序块做分析,因为要尽快提交一版,先搁置这个实践。但是把其中的关键内容拷贝在下面:
方式2
–1)使用ProfilerStart("CPUProfile"),ProfilerStop() (需要包含头文件google/profiler.h)
–2)如果不设定程序块,需要设置环境变量CPUProfile
注:CPUProfile为生成的结果数据文件的文件名