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

Профилировщик дает представление о вашем приложении, например об использовании процессора, памяти и кучи. Он также дает подробную информацию о потоках приложения. В этой главе обсуждается использование инструмента VisualVM для профилирования Java-приложений. Он может профилировать такие объекты, как ЦП и куча.

Рекомендуется, чтобы читатели этого руководства были знакомы с концепциями профилировщика приложений.

Введение

VisualVM - это визуальный инструмент, который объединяет инструменты JDK и предоставляет мощные возможности профилирования. Он позволяет генерировать и анализировать данные кучи, отслеживать утечки памяти, контролировать сборщик мусора и выполнять профилирование памяти и ЦП.

Льготы

  • Визуальный интерфейс для локальных и удаленных Java-приложений, работающих на JVM.

  • Мониторинг использования памяти приложением и его поведения во время выполнения.

  • Мониторинг потоков приложений

  • Анализ распределения памяти для разных приложений.

  • Дампы потоков - очень удобно в случае тупиковых ситуаций и гонок.

  • Дампы кучи - очень удобны при анализе распределения памяти кучи.

Конфигурация

В этом разделе мы узнаем, как настроить VisualVM. Шаги следующие -

  • Загрузите его отсюда .

  • Распакуйте zip-файл.

  • Перейдите к файлу etc / visualvm.conf и добавьте в этот файл следующую строку -

visualvm_jdkhome=<path of JDK>
  • Если ваш JDK установлен в C:\Program Files\Java\jdk-9.0.1 каталог, тогда он должен выглядеть так -

visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"

Приложение для мониторинга

Давайте теперь посмотрим, как контролировать приложение. Рассмотрим следующие шаги, чтобы понять то же самое -

  • Дважды щелкните файл visualvm.exe.
  • Выберите приложение на левой панели.
  • Выберите вкладку монитора.

Вы будете перенаправлены в окно, где вы получите подробную информацию о процессоре, куче, классах и потоках. Чтобы конкретизировать использование, наведите указатель мыши на любой график. Мы видим использование кучи на скриншоте выше.

Информация о потоках

Приложение Java может содержать несколько потоков выполнения. Чтобы узнать больше о потоках, выберите вкладку Темы определенного приложения. Он предоставит различную статистику о потоках, такую ​​как количество живых потоков и потоков демона. Различные состояния потока: «Выполняется», «Спящий», «Ожидание», «Парковка» и «Монитор».

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы выполнить профилирование ЦП, нажмите кнопку ЦП, как показано на скриншоте ниже -

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

Чтобы выполнить профилирование ЦП, нажмите кнопку ЦП, как показано на скриншоте ниже -