Профилировщик дает представление о вашем приложении, как его процессор, память и куча использования. Он также дает подробную информацию о потоках приложений. В этой главе обсуждается использование инструмента VisualVM для профилирования приложений Java. Он может профилировать объекты, такие как процессор и куча.
Читателям этого руководства рекомендуется ознакомиться с концепциями профилировщика приложений.
Вступление
VisualVM — это визуальный инструмент, который интегрирует инструменты JDK и предоставляет вам мощные возможности профилирования. Он позволяет генерировать и анализировать данные кучи, отслеживать утечки памяти, отслеживать сборщик мусора и выполнять профилирование памяти и процессора.
Выгоды
-
Визуальный интерфейс для локальных и удаленных Java-приложений, работающих на JVM.
-
Мониторинг использования памяти приложения и поведение приложения во время выполнения.
-
Мониторинг потоков приложений
-
Анализ выделения памяти для разных приложений.
-
Отводы резьбы — очень удобно в случае тупиков и условий гонки.
-
Кучи дампов — очень удобно при анализе распределения памяти кучи.
Визуальный интерфейс для локальных и удаленных Java-приложений, работающих на JVM.
Мониторинг использования памяти приложения и поведение приложения во время выполнения.
Мониторинг потоков приложений
Анализ выделения памяти для разных приложений.
Отводы резьбы — очень удобно в случае тупиков и условий гонки.
Кучи дампов — очень удобно при анализе распределения памяти кучи.
конфигурация
В этом разделе мы изучим шаги, выполняемые для настройки VisualVM. Шаги следующие:
-
Загрузите его отсюда .
-
Распакуйте ZIP-файл.
-
Перейдите в файл etc / visualvm.conf и добавьте в этот файл следующую строку:
Загрузите его отсюда .
Распакуйте ZIP-файл.
Перейдите в файл etc / visualvm.conf и добавьте в этот файл следующую строку:
visualvm_jdkhome=<path of JDK>
-
Если ваш JDK установлен в каталоге C: \ Program Files \ Java \ jdk-9.0.1, он должен выглядеть следующим образом:
Если ваш JDK установлен в каталоге C: \ Program Files \ Java \ jdk-9.0.1, он должен выглядеть следующим образом:
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
Приложение для мониторинга
Давайте теперь посмотрим, как контролировать приложение. Рассмотрим следующие шаги, чтобы понять то же самое —
- Дважды щелкните файл visualvm.exe.
- Выберите приложение из левой панели.
- Выберите вкладку монитора.
Вы будете направлены в окно, где вы получите подробную информацию о процессоре, куче, классах и потоках. Чтобы быть конкретным с использованием, наведите курсор мыши на любой график. Мы можем видеть использование кучи на скриншоте выше.
Взгляд на темы
Приложение Java может содержать несколько потоков выполнения. Чтобы узнать больше о потоках, выберите вкладку «Потоки» определенного приложения. Это даст различную статистику о потоках, таких как количество активных потоков и потоков демонов. Различными состояниями потока являются «Бег», «Спящий», «Ожидание», «Парковка» и «Монитор».
Приложение для отбора проб
VisualVM поддерживает ЦП, выборку памяти и обнаружение утечек памяти. Чтобы попробовать приложение, выберите приложение и выберите вкладку «Образец» —
Выборка процессора
Для выборки ЦП, нажмите на кнопку ЦП, как показано на следующем скриншоте —
Профилирование памяти
Для профилирования памяти нажмите кнопку Память, как показано на следующем снимке экрана —
Утечки памяти
Утечка памяти происходит, когда приложение во время работы медленно заполняет кучу объектами, которые не удаляются программой автоматически.
Если объект, который не используется программой, не удален, он остается в памяти, и ГХ не может освободить свое пространство. Если количество байтов и количество экземпляров в вашем приложении должно постоянно и значительно увеличиваться в вашей программе до точки использования всего пространства, это может указывать на утечку памяти.
Профилирование приложения
В этом разделе мы узнаем, как профилировать приложение. Чтобы профилировать приложение, выберите приложение на левой панели и щелкните вкладку профиля —
Профилирование процессора
Чтобы выполнить профилирование процессора, нажмите кнопку CPU, как показано на скриншоте ниже —
Профилирование памяти
Чтобы выполнить профилирование процессора, нажмите кнопку CPU, как показано на скриншоте ниже —