项目地址
http://code.google.com/p/gperftools/
引用原文里的一段英文介绍
Perftools is a collection of a
high-performance multi-threaded malloc() implementation, plus some pretty nifty
performance analysis tools.
Perftools
是一个高效的多线程
malloc
实现,附加一些很好的性能分析工具。使用这个工具进行分析
cpu profiling
和
memory leak
分析是很不错的。
下载地址
http://code.google.com/p/gperftools/downloads/list
,从这里面选择一个版本,下载后解压,然后进行安装。安装步骤如下
./configure –enable-frame-pointers
Make
Make install
不出问题的话,上面就可以完成安装了,如有问题,看下
INSTALL,README
文档进行解决。
使用方法有两种
第一种
设置
LD_PRELOAD
假设要分析的执行文件为
run.out
Export LD_PRELOAD=/usr/local/lib/libprofiler.so:/usr/local/lib/libtcmalloc.so
其中第一个库是做
cpu profiling
需要的库,第二个是对
memory
做
profiling
需要的库
然后执行
CPUPROFILE=/tmp/prof.out HEAPCHECK=strict /path/to/run.out
便会在
/tmp/
目录下生成
prof.out
和
/tmp/run.out.xxxend.heap.
这样的文件
第二种在编译的时候添加
-lprofiler –ltcmalloc
选项
例如
gcc –o run.so test.c –lprofiler –ltcmalloc
,这样生成的
run.out
在运行的时候也能得到
profling
的结果文件
CPUPROFILE=/tmp/prof.out HEAPCHECK=strict
/path/to/run.out
同样会在
/tmp
目录下生成第一种方法那样的两个文件
使用
pprof
对
profiling
的结果文件进行分析
对
cpu profiling
的结果文件执行下面的命令
pprof --text ./a.out /tmp/prof.out
会得到类似下面的输出,从中可以看到各个函数执行时间的比例
Using local file ./a.out.
Using local file /tmp/prof.out.
Removing killpg from all stack traces.
Total: 2255 samples
1677 74.4% 74.4% 1677 74.4% consumeSomeCPUTime1
578 25.6% 100.0% 1131 50.2% consumeSomeCPUTime2
0 0.0% 100.0% 2255 100.0% __libc_start_main
0 0.0% 100.0% 2255 100.0% main
0 0.0% 100.0% 2255 100.0% stupidComputing
每一列的含义如下所示
1.Number of profiling samples in this
function
2.Percentage of profiling samples in this
function
3.Percentage of profiling samples in the
functions printed so far
4.Number of profiling samples in this
function and its callees
5.Percentage of profiling samples in this
function and its callees
6.Function name
对
memory
profiling
的结果文件执行下面的命令
pprof --text ./run.out /tmp/run.out.29318._main_-end.heap
会得到类似下面的输出,给出了
memory leak
产生的函数及所占比例
Total: 0.0 MB
0.0 66.7% 66.7% 0.0 66.7% b
0.0 33.3% 100.0% 0.0 33.3% a
0.0 0.0% 100.0% 0.0 100.0% __libc_start_main
0.0 0.0% 100.0% 0.0 100.0% main
每一列的含义同上面类似,将
leak
的比例函数执行时间的比例即可。
当然,还可以选择其他的生成方式,例如将--text换成--pdf,--gv等这样的,生成pdf和图片方式。
Perftools
是个很不错的工具,对无论性能分析,还是对内存进行分析,都能给开发者提供很好的解决问题思路。而且工具是开源的,如果需要加一些什么功能或者修复什么
bug
,也是比较方便的,我们这边有同学就加了一点功能。以后把这个工具用起来,再慢慢谈使用这个工具的一些经验吧。
分享到:
相关推荐
《Google Perftools:优化Nginx的利器》 在当今的互联网环境中,服务器性能的优化至关重要,尤其是在处理高并发请求的Web服务器...对于任何希望优化Nginx性能的开发者来说,掌握Google Perftools的使用是至关重要的。
在使用`google-perftools`时,你需要先将其编译并安装到系统中。编译过程通常包括配置、编译和安装三个步骤。在Linux环境下,可以使用`./configure`,`make`和`sudo make install`命令来完成。安装后,你可以通过`...
`google-perftools-1.8.2.tar.gz`是该工具的一个特定版本,打包成tar.gz格式供用户下载使用。 一、主要组件 `google-perftools`包含两个主要组件:`tcmalloc`和`pprof`。 1. `tcmalloc`(Thread-Caching Malloc)...
google-perftools-1.8.3-1.el6.x86_64.rpm
在Linux环境下,可以使用包管理器或者源码编译的方式安装google-perftools-1.6。配置时,确保链接了必要的库,并在编译目标程序时启用gperftools的支持。 3. **pprof的使用** - **CPU Profiling**:运行程序时...
在实际项目中,使用Google Perftools和tcmalloc可以显著提升内存管理的效率,降低内存消耗。安装gperftools-2.7.tar.gz文件,可以按照以下步骤操作: 1. 解压文件:`tar -zxvf gperftools-2.7.tar.gz` 2. 进入解压...
google-perftools 简介 google-perftools 是一款针对 C/C++ 程序的性能分析工具,它...本文介绍了一个 Linux 平台上的性能剖析工具 google-perftools,并结合实例向读者展示了如何使用该工具配置、使用及分析性能瓶颈。
离线安装包,亲测可用
标题中的“使用google-perftools优化nginx在高并发时的性能的教程(完整版)”指的是一个详细的指南,旨在教导读者如何利用Google的性能分析工具google-perftools来增强Nginx在处理高并发请求时的性能。这个过程涉及到...
"rabbitmq-perf-test-2.7.0-bin.tar.gz" 是一个针对RabbitMQ性能测试的工具包,版本为2.7.0,用户可以直接下载并解压使用,无需进行复杂的安装过程。 该工具的主要功能是对RabbitMQ服务器进行性能测试,评估其在高...
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
【Spark-Perf:Spark流处理性能基准测试】 Spark-Perf是一个专注于评估Apache Spark流处理(Spark Streaming)性能的工具。它为开发者、研究人员和系统管理员提供了基准测试的框架,帮助他们理解Spark Streaming在...
python-perf-3.10.0-1160.2.1.el7.centos.plus.x86_64
在文件列表中,"google-perftools-0.8"可能表示的是该工具的一个特定版本,包含了编译后的库文件、头文件以及相关的文档和示例。用户可以通过这些文件在自己的项目中集成和使用Google Perftools,或者对其进行编译以...
python-perf-3.10.0-1160.el7.centos.plus.x86_64
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
python-perf-3.10.0-1160.36.2.el7.centos.plus.x86_64
离线安装包,亲测可用
官方版本,亲测可用