У меня есть процесс Java, который действует сомнительно. Я хотел бы видеть то, что использует различные аналитические инструменты HPROF.
Как я генерирую тот на лету?
Вы должны запустить Java-процесс с правильными аргументами, , которые немного различаются в зависимости от версии JVM. Затем отправьте процессу сигнал QUIT
для создания нового файла.
Выходные данные обычно генерируются при выходе из виртуальной машины, хотя это можно отключить, установив для параметра «дамп при выходе» значение «n» (doe = n). Кроме того, профиль создается при нажатии Ctrl- \ или Ctrl-Break (в зависимости от платформы). В ОС Solaris и Linux профиль также создается при получении сигнала QUIT (kill -QUIT pid). Если Ctrl- \ или Ctrl-Break нажимается несколько раз, для одного файла создается несколько профилей.
VisualVM может помочь вам разобраться в том, что делает ваш процесс, включая возможность произвольного принудительного дамп кучи запущенного процесса.
Да. Вы можете сгенерировать файл hprof (содержащий информацию об использовании памяти кучи) на лету с помощью инструмента jmap, который поставляется с Java VM от Sun:
jmap -dump: file =