美文网首页
TCMalloc入门

TCMalloc入门

作者: 黄瓜苗苗的兜大宝 | 来源:发表于2017-08-04 19:19 被阅读0次

TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是TCMalloc在效率和速度效率都比标准malloc高很多。TCMalloc是google-perftools工具中的一个,这个工具都是开源的,以源码形式发布。如果觉得自己维护一个内存分配器麻烦的话,可以考虑将TCMalloc静态库连接到你的程序中。使用的时候和glibc中的malloc调用方式一样一样的。你需要做的只是把TCMalloc的动态库或者静态库连接进你的程序中,你就可以获得一个高效,快速,安全的内存分配器。好了废话不多说,如果想知道更多关于TCMalloc的信息,看这里。下面是在Linux下编译TCMalloc的方法,以及使用方法:

  • [x] (1).可以先到http://code.google.com/p/google-perftools/下载源码包,在Linux下可以输入命令:wget http://google-perftools.googlecode.com/files/google-perftools-1.4.tar.gz 进行下载。
  • [x] (2).下载完成后,输入命令:tar zxvf google-perftools-1.4.tar.gz 进行解压;并输入命令:cd google-perftools-1.4进入源码目录中。
  • [x] (3).输入命令:./configure 可安装全部google-perftools的组件,包括TCMalloc、heap-checker、heap-profiler和cpu-profiler共4个组件。但是我们这里只需要TCMalloc所以我们可以输入命令:./configure --prefix=/usr/local --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal 只安装TCMalloc。--prefix=/usr/local是指定安装目录的,如果不指定则默认安装到/usr/local/lib/下面。
  • [x] (4).输入命令:make && make install进行编译、安装。如果要使用最小安装,则只需在第(3)部中指定一个临时目录安装,然后将生成的.so和.a库文件复制到/usr/local/lib目录下,然后执行如下几条建立符号链接的命令即可:(静态库不需要符号链接,复制的时候只复制文件,不复制符号链接文件)
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so.0
ln -s /usr/local/lib/libtcmalloc_minimal.so.0.0.0 /usr/local/lib/libtcmalloc.so.0.0.0
  • [x] (5).在编译自己程序的时候,在编译选项的最后加入 /usr/local/lib/libtcmalloc_minimal.a 即可链接静态库。如果用动态库则在编译选项这里插入 -L/usr/local/lib -ltcmalloc_minimal 即可。

最后编译你的程序,你就可以使用TCMalloc了,你的代码一句都不需要修改。动态库有没有使用成功可使用这个命令:lsof -n | grep tcmalloc。静态库则没有办法查看。
完美之道,不在于无可增加,而在于无可减少。

相关文章

  • TCMalloc入门

    TCMalloc(Thread-Caching Malloc)与标准glibc库的malloc实现一样的功能,但是...

  • 简单聊聊 TCMalloc

    官方介绍:tcmalloc[https://google.github.io/tcmalloc/]参考文章:TCM...

  • GoLang-内存管理

    一、tcmalloc介绍<参考资源> go的内存管理和tcmalloc(thread-caching malloc...

  • golang 源码剖析(2) TCMalloc内存管理器

    使用TCMalloc(Thread-Caching Malloc)当内存管理器以下翻译自tcmalloc.html...

  • Suricata文档——第七章性能5

    7.10 Tcmalloc 'tcmalloc'是Google为了改进线程化程序中的内存处理而在google-pe...

  • tcmalloc

    TCMalloc是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算...

  • TCMalloc解密

    原文请移步我的博客:TCMalloc解密 写在前面 本文首先简单介绍TCMalloc及其使用方法,然后解释TCMa...

  • tcmalloc原理

    1、动机 tcmalloc要比glibc2.3 malloc(基于ptmalloc2实现)要快,ptmalloc2...

  • tcmalloc 比较glibc

    使用了thread cache,小块的内存分配都可以从cache中分配。多线程分配内存的情况下,可以减少锁竞争。 ...

  • tcmalloc to release memory

    After testing, the occupied memory is not released by usi...

网友评论

      本文标题:TCMalloc入门

      本文链接:https://www.haomeiwen.com/subject/ymsblxtx.html