TCMalloc(Thread-Caching Malloc)與標(biāo)準(zhǔn)glibc庫的malloc實(shí)現(xiàn)一樣的功能,但是TCMalloc在效率和速度效率都比標(biāo)準(zhǔn)malloc高很多坤检。TCMalloc是google-perftools工具中的一個(gè)叹谁,這個(gè)工具都是開源的饲梭,以源碼形式發(fā)布。如果覺得自己維護(hù)一個(gè)內(nèi)存分配器麻煩的話焰檩,可以考慮將TCMalloc靜態(tài)庫連接到你的程序中憔涉。使用的時(shí)候和glibc中的malloc調(diào)用方式一樣一樣的。你需要做的只是把TCMalloc的動(dòng)態(tài)庫或者靜態(tài)庫連接進(jìn)你的程序中析苫,你就可以獲得一個(gè)高效兜叨,快速,安全的內(nèi)存分配器衩侥。好了廢話不多說国旷,如果想知道更多關(guān)于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 進(jìn)行下載峦萎。
- [x] (2).下載完成后屡久,輸入命令:tar zxvf google-perftools-1.4.tar.gz 進(jìn)行解壓;并輸入命令:cd google-perftools-1.4進(jìn)入源碼目錄中骨杂。
- [x] (3).輸入命令:./configure 可安裝全部google-perftools的組件涂身,包括TCMalloc、heap-checker搓蚪、heap-profiler和cpu-profiler共4個(gè)組件蛤售。但是我們這里只需要TCMalloc所以我們可以輸入命令:./configure --prefix=/usr/local --disable-cpu-profiler --disable-heap-profiler --disable-heap-checker --disable-debugalloc --enable-minimal 只安裝TCMalloc。--prefix=/usr/local是指定安裝目錄的妒潭,如果不指定則默認(rèn)安裝到/usr/local/lib/下面悴能。
- [x] (4).輸入命令:make && make install進(jìn)行編譯、安裝雳灾。如果要使用最小安裝漠酿,則只需在第(3)部中指定一個(gè)臨時(shí)目錄安裝,然后將生成的.so和.a庫文件復(fù)制到/usr/local/lib目錄下谎亩,然后執(zhí)行如下幾條建立符號(hào)鏈接的命令即可:(靜態(tài)庫不需要符號(hào)鏈接炒嘲,復(fù)制的時(shí)候只復(fù)制文件宇姚,不復(fù)制符號(hào)鏈接文件)
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).在編譯自己程序的時(shí)候,在編譯選項(xiàng)的最后加入 /usr/local/lib/libtcmalloc_minimal.a 即可鏈接靜態(tài)庫夫凸。如果用動(dòng)態(tài)庫則在編譯選項(xiàng)這里插入 -L/usr/local/lib -ltcmalloc_minimal 即可浑劳。
最后編譯你的程序,你就可以使用TCMalloc了夭拌,你的代碼一句都不需要修改魔熏。動(dòng)態(tài)庫有沒有使用成功可使用這個(gè)命令:lsof -n | grep tcmalloc。靜態(tài)庫則沒有辦法查看鸽扁。
完美之道蒜绽,不在于無可增加,而在于無可減少桶现。