Как я могу проанализировать дамп кучи в 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 . Пользовательский интерфейс для просмотра, как показано ниже:
Вы можете просмотреть дамп кучи одним из следующих способов:
- View > Tool Windows > Profiler из главного меню и нажмите Open Snapshot
- Выполнить > Открыть снимок профилировщика > Открыть из главного меню
- Перетащите файл дампа кучи в окно IntelliJ.
Вы также можете использовать VisualVM Launcher для запуска VisualVM из IDEA. https://plugins.jetbrains.com/plugin/7115?pr=idea Лично я считаю это более удобным.
Вы можете просто запустить "Java VisualVM", который находится по адресу jdk/bin/jvisualvm.exe
Это откроет графический интерфейс, используйте меню "Файл" -> "Загрузить...", затем выберите файл *.hprof.
Вот и все, вы сделали!
В хранилище плагинов также есть "Просмотр памяти отладчика JVM", который может быть полезен.
Вы можете установить плагин JVisualVM отсюда: https://plugins.jetbrains.com/plugin/3749?pr=
Это позволит вам проанализировать дамп в плагине.