由于想接触tcmalloc,所以索性对tcmalloc做一个彻底点的分析,以下是一些分析的心得。
一. 安装
tcmalloc在gperftools之中,故想要使用tcmalloc,就得先安装gperftools。在linux下,其安装步骤如下:
1. tar xzvf gperftools-2.1.tar.gz
2. cd gperftools-2.1
3. ./configure --enable-frame-pointers
4. make
5. make install
这里需要注意一点,在linux下,如果直接./configure,那么make时会报出编译错误:error Cannot calculate stack trace: will need to write for your environment。解决方法如上所示,在configure时加入选项--enable-frame-pointers。
如果想定制化安装,请自行参阅gperftools的安装文档,即源码包中的INSTALL文件。
二. 使用
对于tcmalloc的使用,还是用程序来说明吧。
tcmalloc_sample.cpp:
#include <iostream> #include <google/tcmalloc.h> int main() { char *cp = (char *)tc_malloc(23 * sizeof(char)); tc_free(cp); cp = NULL; return 0; }
注:以下的步骤都是以第一部分所述的安装方式为前提而进行的。
1. 编译:g++ -o tcmalloc_sample -g tcmalloc_sample.cpp -ltcmalloc
2. 运行: ./tcmalloc_sample
如果遇到以下错误:
error while loading shared libraries: libtcmalloc.so.4: cannot open shared object file: No such file or directory
那么就需要为系统指定libtcmalloc的加载路径:
1. echo /usr/local/lib > /etc/ld.so.conf.d/libtcmalloc.conf
2. ldconfig
现在运行./tcmallco_sample命令,就不会出现上面提到的错误了。
(To Be Continued...)