google perftools工具介绍

安装编译工具

sudo yum -y install gcc make
sudo yum -y install gcc gcc-c++

安装libunwind

wget https://github.com/libunwind/libunwind/archive/v0.99.tar.gz
tar -xvf v0.99.tar.gz
cd libunwind-0.99
autoreconf --force -v --install
./configure 
make 
make install

安装perftools

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.6.1/gperftools-2.6.1.tar.gz
tar -xvf  gperftools-2.6.1.tar.gz # 解压
./configure 
make 
make install

配置

在/etc/ld.so.conf.d目录下建立文件perftools.conf,文件内容为libunwind库所在目录,本文中安装时都未指定目录,默认为:

/usr/local/lib

执行使之生效:

sudo /sbin/ldconfig

perftools是通过Linux的LD_PRELOAD达到java应用程序运行时,当调用malloc时换用它的libtcmalloc.so,因此需要在运行程序之前设置变量:

export LD_PRELOAD=/usr/local/lib/libtcmalloc.so
export HEAPPROFILE=/root/perftools/java

产生报告

启动Java程序之后,会在HEAPPROFILE目录生成heap文件,运行如下命令,产生文本格式的报告:

pprof --text /usr/java/jdk1.8.0_91/bin/java java_31242.0001.heap

推荐阅读更多精彩内容

  • 动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过...
    小5筒阅读 3,413评论 0 3
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 82,606评论 9 458
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 116,464评论 15 132
  • 一直想系统地了解下linux下神奇的动态函数库,这在大型的工程里面非常常见。需要把一些代码编译成自己的库,然后划分...
    少阁主_enfj阅读 1,743评论 0 4
  • 目的这篇教程从用户的角度出发,全面地介绍了Hadoop Map/Reduce框架的各个方面。先决条件请先确认Had...
    SeanC52111阅读 1,176评论 0 1