pprof (gperftools)使用
谷歌的工具集,可查看CPU采样结果。pprof (google-perftool),用于来分析程序,必须保证程序能正常退出。使用步骤:
1.准备工具,先安装工具包
libunwind-1.1.tar.gz
gperftools-2.1.tar.gz
解压后 configure到系统默认路径即可,之后直接-lprofiler
2.再安装图形工具
sudo yum install "graphviz*"
sudo yum install ghostscript
GPerfTools="/home/zhifeng.czf/tools/gperftools-bin"
3. 自己程序增加编译链接选项:
-lprofiler
附:
GPerlToos=/home/zhifeng.czf/tools/gperftools-bin
CCFLAGS=-fno-omit-frame-pointer-g
ALL_BINS=test_gperf
all:$(ALL_BINS)
test_gperf:test_gperf.o
g++ $(CCFLAGS) -o $@ $^-L$(GPerfTools)/lib -Wl, -Bdynamic -lprofiler
.cpp.o:
g++ $(CCFLAGS) -c -I./-I$(GPerfTools)/include -fPIC -o $@ $<
clean:
rm -rf $(ALL_BINS) *.o
4. 运行:
CPUPROFILE=./profile CPUPROFILESIGNAL=12 ./xlongsrv
此外,对于不能正常结束的程序,如果CPUPROFILESIGNAL的方式不成功,可以自己调用:
ProfilerStart(), ProfilerStop();
5.查看结果
pprof --pdf ./xlongsrv ./profile.0 > graph.pdf
pprof --gif ./xlongsrv ./profile.0 > graph.gif
/home/zhifeng.czf/tools/gperf/bin/pprof--callgrind ./XLongSrv.astar.perf ./bs.prof > graph.callgrind
/home/zhifeng.czf/tools/gperf/bin/pprof-text ./XLongSrv.astar.perf ./bs.prof