开发者

Hoard allocator not "working"?

I'm trying to Hoard allocator to work, but it seems it doesn't. I have a benchmark appli开发者_如何学运维cation that does a lot of dynamic memory management. The execution time for Hoard and glibc memory manager is the same. It makes me wonder if I'm doing the right thing.

What I do is...

export LD_PRELOAD="/path/libhoard.so"

g++ main.cpp -O3 -o bm -lpthread -lrt

Shouldn't I have to link to Hoard allocator? Does it matter what path (in LD_PRELOAD) is, or can I have whatever path?

I'm running Ubuntu 8.04, and g++ 4.2.4

Cheers


No one knows any Linux command (such as grep) to find out if Hoard is loaded properly, and is the actual allocator used?


Author of Hoard here.

(a) Any path for LD_PRELOAD is fine (as long as it is correct).

(b) To see whether your code is using Hoard or not, use the ldd command. If everything went according to plan, then you will see the Hoard library (notice the second line after the second invocation of ldd).

Best,

-- Emery Berger

bash-3.2$ ldd /bin/ls
    linux-vdso.so.1 =>  (0x00007fffe6dfd000)
 librt.so.1 => /lib64/librt.so.1 (0x0000003159600000)
 libacl.so.1 => /lib64/libacl.so.1 (0x000000315e200000)
 libselinux.so.1 => /lib64/libselinux.so.1 (0x000000315d200000)
 libc.so.6 => /lib64/libc.so.6 (0x0000003154e00000)
 libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003155a00000)
 /lib64/ld-linux-x86-64.so.2 (0x0000003154a00000)
 libattr.so.1 => /lib64/libattr.so.1 (0x0000003162000000)
 libdl.so.2 => /lib64/libdl.so.2 (0x0000003155600000)
 libsepol.so.1 => /lib64/libsepol.so.1 (0x000000315ce00000)
bash-3.2$ export LD_PRELOAD=$PWD/libhoard.so
bash-3.2$ ldd /bin/ls
 linux-vdso.so.1 =>  (0x00007fff24bfd000)
 /nfs/cm/users1/emery/scratch/projects/hoard/trunk/src/libhoard.so (0x00002b4885f42000)
 librt.so.1 => /lib64/librt.so.1 (0x0000003159600000)
 libacl.so.1 => /lib64/libacl.so.1 (0x000000315e200000)
 libselinux.so.1 => /lib64/libselinux.so.1 (0x000000315d200000)
 libc.so.6 => /lib64/libc.so.6 (0x0000003154e00000)
 libdl.so.2 => /lib64/libdl.so.2 (0x0000003155600000)
 libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003155a00000)
 libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x000000315b200000)
 libm.so.6 => /lib64/libm.so.6 (0x0000003155200000)
 libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000315aa00000)
 /lib64/ld-linux-x86-64.so.2 (0x0000003154a00000)
 libattr.so.1 => /lib64/libattr.so.1 (0x0000003162000000)
 libsepol.so.1 => /lib64/libsepol.so.1 (0x000000315ce00000)
bash-3.2$ 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜