`
coolerbaosi
  • 浏览: 730893 次
文章分类
社区版块
存档分类
最新评论

2012年tcmalloc学习笔记之一

 
阅读更多
<style type="text/css"> <!-- @page {margin:2cm} h3 {margin-bottom:0.21cm} h3.western {font-family:"Liberation Sans",sans-serif} h3.cjk {font-family:"文泉驿正黑"; font-style:normal} h3.ctl {font-family:"Lohit Hindi"} h2 {margin-bottom:0.21cm} h2.western {font-family:"Liberation Sans",sans-serif; font-size:14pt; font-style:italic} h2.cjk {font-family:"文泉驿正黑"; font-size:14pt; font-style:italic} h2.ctl {font-family:"Lohit Hindi"; font-size:14pt; font-style:italic} pre.western {font-family:"DejaVu Sans Mono",monospace} pre.cjk {font-family:"文泉驿等宽正黑",monospace} pre.ctl {font-family:"Lohit Hindi",monospace} h1 {margin-bottom:0.21cm} h1.western {font-family:"Liberation Sans",sans-serif; font-size:16pt} h1.cjk {font-family:"文泉驿正黑"; font-size:16pt; font-style:normal; font-weight:bold} h1.ctl {font-family:"Lohit Hindi"; font-size:16pt; font-weight:bold} p {margin-bottom:0.21cm} --> </style>

2012年tcmalloc学习笔记之一


一、tcmalloc是什么?

Thread-CachingMalloc线程缓存的Malloc

二、google开源工具google-perftools究竟有哪些工具?

1.TCMalloc

2.Heap-checker

3.Heap-profiler

4.CPU-profiler

三、为什么要选择tcmalloc

1.内存分配效率高;

2.运行速度快;

3.稳定性强;

4.能够有效降低系统负载;

四、应用场景

1.多核;

2.高并发;

3.多线程;

五、如何进行内存泄露检测

使用方法:
exportHEAPCHECK=TYPE
TYPE
可以为:minimalnormalstrictdraconian

六、还有哪些内存管理库(或者说内存分配器)

1.标准的glibc

2.开源ptmalloc

3.jemalloc


七、64位操作系统与32位操作系统的区别

64位操作系统请先安装libunwind库,32位操作系统不要安装。

1.如何检测是多少位的操作系统

使用命令:uname-a


八、libunwind库的作用

libunwind库为基于64CPU和操作系统的程序提供了基本的堆栈辗转开解功能,其中包括用于输出堆栈跟踪的API、用于以编程方式辗转开解堆栈的API以及支持C++异常处理机制的API


九、代码的下载地址

http://code.google.com/p/gperftools/


十、最新版本

gperftools-2.0

时间:Feb3, 2012

下载地址:http://code.google.com/p/gperftools/downloads/detail?name=gperftools-2.0.tar.gz

十一、如何进行编译

./configure  --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugall



十二、编译出错怎么处理

configure:error: C++ compiler cannot create executables

在使用./configure编译时出现:configure:error: C++ compiler cannot create executables错误,是因为系统中缺少以下两个包:

gcc-c++

libstdc++-devel


请执行如下命令:

apt-getinstall gcc-c++

apt-getinstall g++

apt-getinstall libstdc++-devel

笔者的机器:

运行apt-getinstall g++即可编译通过。

十二、如何使用

make

makeinstall

注意:64位操作系统一定要先装libunwind这个库。


十三、libunwind下载地址

http://mirror.yongbok.net/nongnu/libunwind/


十四、libunwind最新版本

1.0.1

libunwind-1.0.1.tar.gz

时间:16-Aug-2011 13:33     287

十五、编译libunwind解决办法

1.错误提示

/usr/include/x86_64-linux-gnu/bits/setjmp2.h:26:13: 错误: ‘longjmp’是未定义符号‘_longjmp’的别名

/usr/include/bits/setjmp2.h:26: error: ‘longjmp’ aliased to undefined symbol ‘_longjmp’ 

2.分析编译指令

gcc -U_FORTIFY_SOURCE -DHAVE_CONFIG_H -I. -I../include -I../include -I../include/tdep-x86_64 -I. -D_GNU_SOURCE -DNDEBUG -g -O2 -fexceptions -Wall -Wsign-compare -MT setjmp/longjmp.lo -MD -MP -MF setjmp/.deps/longjmp.Tpo -c setjmp/longjmp.c  -fPIC -DPIC -o setjmp/.libs/longjmp.o

3.错误原因

缺少U_FORTIFY_SOURCE编译开关。

4.解决办法

修改在libunwind-1.0.1/src目录下的Makefile文件

680行针对CPPFLAGS编译选项,新增一个编译开关U_FORTIFY_SOURCE即可。






分享到:
评论

相关推荐

    Tcmalloc-v2.10

    tcmalloc 内存管理及内存泄漏

    vs2003-tcmalloc静态链接库

    vs2003-tcmalloc静态链接库

    tcmalloc排查内存泄漏的方法

    tcmalloc排查内存泄漏的方法

    tcmalloc源代码及编译安装教程

    安装tcmalloc所需的源代码,和完整编译安装应用过程。 unzip tcmalloc.zip tar -zxvf gperftools-2.1.tar.gz cd gperftools-2.1 ./configure --disable-cpu-profiler --disable-heap-profiler --disable-heap-...

    控制内存增长TCMALLOC.docx

    控制内存增长TCMALLOC

    基于numa架构的tcmalloc内存管理算法

    对tcmalloc算法的更改,支持numa架构,在numa架构下有更好的性能

    tcmalloc 源代码工程

    These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-... Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler.

    tcmalloc 安装包

    These tools are for use by developers so that they can create more robust applications. Especially of use to those developing multi-... Includes TCMalloc, heap-checker, heap-profiler and cpu-profiler.

    LOK封装的TCMALLOC(TztMM).zip

    这个tcmalloc很出名了,是google出的内存管理模块,比传统模块控制更合理,能应付更高的并发,而且也更稳定. 不过这个模块不是系统自带的,没有原生安装,所以需要手动去安装操作,稍微有点麻烦.这个模块包含在google封装...

    tcmalloc编译好的lib文件和dll文件

    tcmalloc编译好的lib文件和dll文件,两种编译方式,动态链接库,和静态库两种编译结果。 使用vs2019,x64

    tcmalloc

    TCMalloc是一种快速的多线程malloc实现。构建TCMalloc 是TCMalloc的官方构建系统。 《 包含有关TCMalloc的平台支持的信息。文献资料TCMalloc的所有用户应查阅以下文档资源: 涵盖下载,安装,构建和测试TCMalloc,...

    Tcmalloc.zip

    Tcmalloc含最新的libunwind-1.1.tar.gz和gperftools-2.1.tar.gz

    TCMalloc代码框架

    项目简介:该项目实现了一个简易的高并发内存池框架,将内存池设计为thread cache、central cache、page cache三层架构,从而实现高效的多线程内存管理。 核心技术:链表、哈希桶、操作系统内存管理、单例模式的设计...

    linux系统 64位下编译安装tcmalloc

    google-perftools是一个堆外内存分析工具 默认libunwind安装到/usr/local/lib,使用prefix命令指定安装目录

    tcmalloc库安装指南.txt

    tcmallc内存库的安装方法,然后在编译时将其静态链接到库cmimpl 。 target_link_libraries(cmimpl -pthread ) #######静态链接c++库################### SET_TARGET_PROPERTIES(cmimpl PROPERTIES LINK_FLAGS "-...

    mysql tcmalloc安装 - 手册

    TCMalloc(Thread-Caching Malloc)是google开发的开源工具──“google-perftools”中的成员。与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多,可以在很大程度上提高MySQL服务器在高并发...

    nginx优化 使用Google的开源TCMalloc库

    如果显示类似下面的信息,即表示支持tcmalloc加速 (nginx八个线程都支持) nginx 31655 www 9w REG 8,1 0 479533 /tmp/tcmalloc/.31655 nginx 31656 www 11w REG 8,1 ...

    工作小计-性能优化-gperftools/tcmalloc/pprof

    工作小计-性能优化-gperftools/tcmalloc/pprof

    浅谈redis采用不同内存分配器tcmalloc和jemalloc

    我们知道Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。所以系统内存分配器的性能及碎片率会对Redis造成一些性能上的影响。...#define ZMALLOC_LIB ("tcmalloc-" __xstr(TC_VERS

Global site tag (gtag.js) - Google Analytics