С помощью Flight Recorder вы можете добавить в командную строку
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,settings=profile
https://docs.oracle.com/javacomponents/jmc-5-5/jfr-runtime-guide/run.htm#JFRRT176
Он записывает только распределение памяти на новом TLAB, поэтому я делаю его намного меньше, чемпо умолчанию, чтобы получить больше образцов.
-XX:TLABSize=128k
Вам нужно запустить jmc
из каталога $JAVA_HOME/bin
, чтобы открыть созданный файл .jfr
.
Мне сложнее использовать, чемVisualVM, но дает гораздо более подробные результаты с меньшим уровнем шума.то есть вы получаете гораздо меньше причин распределения самим профилировщиком.