Подтвердить что ты не робот

Могу ли я генерировать файл HPROF по своему желанию?

У меня есть java-процесс, который действует сомнительно. Я хотел бы посмотреть, что с помощью различных инструментов анализа HPROF.

Как я могу создать его на лету?

4b9b3361

Ответ 1

Да. Вы можете сгенерировать hprof файл (содержащий использование памяти кучи) на лету, используя инструмент jmap, который поставляется с Sun Java VM:

jmap -dump: file = < имя_файлa > <pid>

Ответ 2

Вам нужно запустить Java-процесс с правильными аргументами, которые немного отличаются в зависимости от версии JVM. Затем отправьте сигнал QUIT в процесс для создания нового файла.

Выход обычно генерируется при выходе из ВМ, хотя это можно отключить, установив опцию "дамп при выходе" на "n" (doe = n). Кроме того, профиль создается при нажатии Ctrl-\или Ctrl-Break (в зависимости от платформы). В ОС Solaris и Linux профиль также генерируется при получении сигнала QUIT (kill -QUIT pid). Если Ctrl-1 или Ctrl-Break нажата несколько раз, в один файл сгенерированы несколько профилей.

Ответ 3

VisualVM может помочь вам разобраться в том, что делает ваш процесс, в том числе возможность произвольно заставлять дамп кучи на запущенном процессе.

Ответ 4

jconsole теперь имеет возможность создать дамп для текущего рабочего каталога приложения.

  • Подключитесь к экземпляру с поддержкой JMX
  • Перейдите в com.sun.management → HotspotDiagnostic → Operations
  • Заполните p0, чтобы назвать Dump Dump
  • нажмите кнопку heapDump

Jconsole Screen Shot