Как включить метрики кучи для JFR через командную строку - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь запустить Java Flight Recorder, используя двоичный файл jcmd, расположенный /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jcmd (Mac OS X).Есть ли опция командной строки для включения метрик кучи, которая соответствует опции статистики кучи в пользовательском интерфейсе начала записи полета:

enter image description here

1 Ответ

0 голосов
/ 26 января 2019

Нет командной строки или опции jcmd для включения статистики кучи.

Событие отключено как в файле настроек по умолчанию, так и в файле настроек профиля, так как оно вызывает безопасную точку при итерации по куче.

Однако вы можете использовать менеджер шаблонов в JMC, Windows -> Template Manager.и проверьте настройки, которые вы хотите иметь, т.е. статистику кучи, и экспортируйте файл.Затем используйте jcmd для его применения

jcmd <pid> JFR.start settings=my-configuration-file.jfc

Если вы пытаетесь диагностировать утечку памяти, может быть интересно узнать, что Oracle JDK 10+ и OpenJDK 11+ записывают событие Old Object Sample, которое собирает информациюэто, как правило, более полезно для решения утечек памяти Java (и без дополнительных затрат на безопасную точку).Более поздние JDK имеют параметр path-to-gc-root = true (для jcmd и -XX: StartFlightRecording), который может предоставить дополнительную информацию для устранения утечек памяти.Однако эта опция будет вызывать такие же издержки, что и статистика кучи, но намного меньше, чем дамп HPROF, так как на диск записывается меньше данных.

...