Когда вы запускаете sudo
, Java получает корневую среду, в которой нет ранее экспортированных LD_PRELOAD
и MALLOC_CONF
.
Попробуйте
sudo LD_PRELOAD=/usr/local/lib/libjemalloc.so \
MALLOC_CONF=prof:true,lg_prof_interval:30,lg_prof_sample:17 \
java -jar application.jar
Кстати, jemalloc
не всегда полезно для профилирования Java-приложений, поскольку не может отображать стеки Java (но это полезно для предотвращения утечек памяти, вызванных стандартным распределителем) .
Попробуйте асинхронный профилировщик, как описано в этот ответ .
Также проверьте этот пост о потреблении памяти в Java.