Учебники

Intellij Idea — Профилирование

Профилировщик дает представление о вашем приложении, как его процессор, память и куча использования. Он также дает подробную информацию о потоках приложений. В этой главе обсуждается использование инструмента 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 может содержать несколько потоков выполнения. Чтобы узнать больше о потоках, выберите вкладку «Потоки» определенного приложения. Это даст различную статистику о потоках, таких как количество активных потоков и потоков демонов. Различными состояниями потока являются «Бег», «Спящий», «Ожидание», «Парковка» и «Монитор».

Insights Threads

Приложение для отбора проб

VisualVM поддерживает ЦП, выборку памяти и обнаружение утечек памяти. Чтобы попробовать приложение, выберите приложение и выберите вкладку «Образец» —

Выборка процессора

Для выборки ЦП, нажмите на кнопку ЦП, как показано на следующем скриншоте —

Выборка памяти

Профилирование памяти

Для профилирования памяти нажмите кнопку Память, как показано на следующем снимке экрана —

Профилирование памяти

Утечки памяти

Утечка памяти происходит, когда приложение во время работы медленно заполняет кучу объектами, которые не удаляются программой автоматически.

Если объект, который не используется программой, не удален, он остается в памяти, и ГХ не может освободить свое пространство. Если количество байтов и количество экземпляров в вашем приложении должно постоянно и значительно увеличиваться в вашей программе до точки использования всего пространства, это может указывать на утечку памяти.

Профилирование приложения

В этом разделе мы узнаем, как профилировать приложение. Чтобы профилировать приложение, выберите приложение на левой панели и щелкните вкладку профиля —

Профилирование процессора

Чтобы выполнить профилирование процессора, нажмите кнопку CPU, как показано на скриншоте ниже —

Профилирование процессора

Профилирование памяти

Чтобы выполнить профилирование процессора, нажмите кнопку CPU, как показано на скриншоте ниже —