trying to load jemalloc for java program to find native memory leak ,but unable to get it worked. Steps performed so far
versions : Mac OS 14.3 , JDK 11 , jemalloc - 5.3.0
1.Installed jemalloc via brew
2.set env variable LD_PRELOAD= {path_to_lib}/libjemalloc.2.dylib (tried libjemalloc.dylib also )
3.and this also MALLOC_CONF=prof:true,lg_prof_interval:10,lg_prof_sample:17,prof_prefix:my_path
and I am expecting at least some logs which shows me if this is working but neither seeing logs nor seeing jeprof.**.heap
I even ran normal program with LD_PRELOAD= {path_to_lib}/libjemalloc.2.dylib MALLOC_CONF=prof:true,lg_prof_interval:10,lg_prof_sample:17,prof_prefix:my_path java test.jar
my java program is simply leaking native memory via Bytebuffer.allocateDirect() and want to check this via jemalloc.
Questions :
LD_PRELOAD
is Linux-specific.
On macOS, there is a different mechanism for preloading shared libraries. Look for DYLD_INSERT_LIBRARIES
. Note this may not work with SIP (System Integrity Protection) enabled.