Comparisation
TLSF Two-Level Segregate Fit, mainly on RTOS
jemalloc Jason Evans's malloc, used by firefox
dlmalloc Doug Lea’s malloc, been around forever
ptmalloc2 Doug Lea’s malloc, extended to support per-thread arenas. Default allocator for glibc2.3
TCMalloc Google’s malloc, claims to be 6x faster than ptmalloc2
nedmalloc claims to be faster than tcmalloc
Hoard also claims to be very fast
jemalloc安装和使用:
wget http://www.canonware.com/download/jemalloc/jemalloc-2.0.1.tar.bz2
tar xvf jemalloc-2.0.1.tar.bz2
cd jemalloc-2.0.1/ && ./configure && make && make install
ldconfig
gcc -o test test.c -ljemalloc
tcmalloc安装和使用:
wget http://google-perftools.googlecode.com/files/google-perftools-0.99.2.tar.gz
tar zxvf google-perftools-0.99.2.tar.gz
cd google-perftools-0.99.2/
./configure
make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig
使用tcmalloc代替glibc缺省malloc:
gcc -o test test.c -ltcmalloc
nedmalloc安装和使用:
Refer to the Readme.txt
hoard安装和使用:
make linux-gcc-x86
cp libhoard.so /usr/local/lib/
ldconfig
gcc -o test test.c -lhoard
valgrind --tool=memcheck --leak-check=full ./test
valgrind检查不出jemalloc/tcmalloc的内存泄露,可以检测dlmalloc/ptmalloc/hoard
To be continued
References:
Benchmarks http://locklessinc.com/benchmarks.shtml
http://www.canonware.com/jemalloc/index.html