Profile 工具系列之二: gperftools

本文详细介绍了Google的gperftools工具,重点在于其CPU性能剖析功能。文章涵盖从安装到使用,包括HelloWorld、复杂程序、共享库、动态加载库的示例,并解决了在x64系统上的崩溃问题。通过实例展示了如何分析程序性能,以及如何通过ProfilerStart/ProfilerStop来避免崩溃问题。
摘要由CSDN通过智能技术生成

简介

  • gperftools 原名 Google Performance Tools,是一套可以做 profile 的工具,由 google 提供。
  • 目前看来在 Linux 上特别的好使,Windows 基本不能用(官网说 Windows 正在开发,不知道会不会有下文)
  • CPU profile 只是这个工具其中一个 feature,我们就用这个 feature。
  • 其他 feature 还有 tcmalloc:一个比malloc更快的内存管理算法;还有 heap profiler,heap checker。
  • 官网:https://github.com/gperftools/gperftools
  • 参考:http://www.cnblogs.com/lenolix/archive/2010/12/13/1904868.html

一. 安装

  • clone 代码:
git clone https://github.com/gperftools/gperftools.git
  • 根据 INSTALL 里面的介绍,首先需要安装 autoconf,automake,libtool。然后才能产生 configure 脚本,所以安装:
yum install autoconf
yum install automake
yum install libtool
  • 产生 configure 脚本:
/autogen.sh
tar -xzvf libunwind-0.99-beta.tar.gz
cd libunwind-0.99-beta
./configure --prefix=path/to/where/you/want
make
make install
  • 设置 configure 需要的环境变量:我们安装了 libunwind 之后,需要设置几个环境变量,这样做 configure gperftools 的时候,才能找到我们装的 libunwind:
export  CPPFLAGS=-I/path/to/libunwind_install/include
export  LDFLAGS=-L/path/to/libunwind_install/lib
  • 运行 configure 脚本,只需要用 –prefix 指定安装到哪里即可:
./configure --prefix=/path/to/gperftools_install
make
make install

二. 使用

例1. HelloWorld

  • 一个helloworld源文件:hello.c
/* hello.c */
#include<stdio.h>
int main(int argc,char** argv){
    printf("hello world\n");
}
  • 编译时加入 -lprofiler 选项:
gcc -o hello hello.c -lprofiler -L/path/to/gperftools_install/lib
  • 运行之前设置环境变量:
export CPUPROFILE=hello.prof.out
  • 运行之前把库文件拷贝到系统库目录,要不然运行时找不到 libprofiler 库:
cp path/to/gperftools_install/lib/* /usr/lib64/
  • 运行:
./hello
  • 运行结束后生成了 hello.prof.out
  • 分析该文件
    • 首先把 pprof 拷贝到 /usr/bin

      cp path/to/gperftools_install/bin/pprof
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值