Профиль кучи управления полетом Java

Я играю с новым Java Mission Control Profiler, который поставляется с Java 7u40, и я не могу сделать это для распределения профилей и сбора статистики объектов. Независимо от того, что я делаю, я не вижу никакой статистики в окне Память -> Статистика объекта.

Следующая команда запускает коллекцию:

jcmd <pid> JFR.start duration=60s settings=profile filename=alloc-prof.jfr

В документации Java Mission Control не упоминаются какие-либо конкретные опции для включения профилирования объектов. Я попытался создать свой собственный профиль и установить:

  <flag name="heap-statistics-enabled" label="Heap Statistics">true</flag>
  <flag name="allocation-profiling-enabled" label="Allocation Profiling">true</flag>

Но по-прежнему никакая статистика объекта не собирается.

1 ответ

Решение

Используйте менеджер шаблонов, который доступен в Mission Control.

Перейдите в Windows -> Диспетчер шаблонов и импортируйте шаблон, проверьте статистику кучи и профилирование распределения, экспортируйте его. Готово!

Если вы хотите редактировать jfc-файл вручную, полезно знать, что элементы внутри элемента управления не читаются JVM, то есть flag-element. Они используются JMC для изменения параметров вне элемента управления (один с атрибутом управления)

Ручное редактирование требует, чтобы вы изменили это:

установите java/object_alloc_in_new_TLAB в значение true

установите для java/object_alloc_outside_TLAB значение true

установите для vm/gc/details /object_count значение true

Обратите внимание, что есть два события подсчета объектов, с object_count_after_gc вы увеличите время GC. Если вы выберете тот, что указан выше, вы получите один дополнительный сборщик мусора за каждый блок записи (чего обычно достаточно)

Другие вопросы по тегам