几种内存操作性能比较

时间:2022-10-27 19:20:45

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