Как я могу проанализировать дамп кучи в IntelliJ? (утечка памяти)

Я сгенерировал дамп кучи из моего Java-приложения, которое работало в течение нескольких дней с jmap tool -> это приводит к большому двоичному файлу дампа кучи.

Как я могу выполнить анализ памяти этого дампа кучи в IntellIJ IDEA?

Я знаю, что есть инструменты для Eclipse и Netbeans, но я бы предпочел использовать IDEA, если это возможно.

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

8 ответов

Решение

Лучше всего использовать Memory Analyzer (MAT), IntelliJ не имеет встроенного анализатора дампов кучи.

Я хотел бы обновить приведенные выше ответы до 2018 года и сказать, что нужно использовать VisualVM и Eclipse MAT.

Как пользоваться:

VisualVM используется для мониторинга в реальном времени и кучи дампов. Вы также можете анализировать дампы кучи с большой мощностью, однако у MAT есть больше возможностей (таких как автоматический анализ для обнаружения утечек), и поэтому я считал вывод дампов VisualVM (файл.hprof) в MAT.



Получить VisualVM:

Загрузите VisualVM здесь: https://visualvm.github.io/

Вам также необходимо скачать плагин для Intellij: введите описание изображения здесь

Тогда вы увидите в intellij еще 2 новых оранжевых значка: введите описание изображения здесь

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



Получите Eclipse инструмент анализа памяти (MAT) в качестве автономного:

Скачать здесь: https://www.eclipse.org/mat/downloads.php

И вот как это выглядит: введите описание изображения здесь введите описание изображения здесь

Надеюсь, поможет!

Начиная с IntelliJ IDEA 2021.2, есть функция Open an external profiling report . Пользовательский интерфейс для просмотра, как показано ниже:

Вы можете просмотреть дамп кучи одним из следующих способов:

  1. View > Tool Windows > Profiler из главного меню и нажмите Open Snapshot
  2. Выполнить > Открыть снимок профилировщика > Открыть из главного меню
  3. Перетащите файл дампа кучи в окно IntelliJ.

Вы также можете использовать VisualVM Launcher для запуска VisualVM из IDEA. https://plugins.jetbrains.com/plugin/7115?pr=idea Лично я считаю это более удобным.

Вы можете просто запустить "Java VisualVM", который находится по адресу jdk/bin/jvisualvm.exe

Это откроет графический интерфейс, используйте меню "Файл" -> "Загрузить...", затем выберите файл *.hprof.

Вот и все, вы сделали!

Плагин VisualVM для Intellij Idea

В хранилище плагинов также есть "Просмотр памяти отладчика JVM", который может быть полезен.

Вы можете установить плагин JVisualVM отсюда: https://plugins.jetbrains.com/plugin/3749?pr=

Это позволит вам проанализировать дамп в плагине.

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