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

Я создал дамп кучи из своего java-приложения, которое работало несколько дней с помощью инструмента jmap -> в результате получился большой двоичный файл дампа кучи.

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

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

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


person vikingsteve    schedule 20.10.2014    source источник


Ответы (7)


Лучшее из существующих - это Анализатор памяти (MAT), IntelliJ не имеет встроенного анализатора дампа кучи.

person Meo    schedule 20.10.2014
comment
Есть ли у MAT плагин для IntelliJ? - person johnsam; 08.09.2016
comment
Нет, MAT написан с использованием фреймворка Eclipse, поэтому я не вижу, чтобы его было очень легко подключить к IntelliJ. Однако, честно говоря, запуск MAT как отдельного приложения, вероятно, лучше. - person Rich; 24.09.2018
comment
На данный момент это так. - person Miha_x64; 02.11.2018
comment
Как это соотносится с плагином Java Mission Control JOverflow Analyzer? - person alex; 27.04.2020
comment
Начиная с 2020.1, IntelliJ поддерживает анализ дампов кучи: jetbrains.com/help/idea/analyze-hprof-memory-snapshots.html - person Eduard Wirch; 10.09.2020
comment
Я использую 2020.2, и нет ничего похожего на упомянутые документы! @EduardWirch - person ericn; 13.09.2020
comment
@ericn Вы используете IntelliJ Ultimate? Согласно jetbrains.com/help/idea/cpu-profiler.html профилировщик - это функция IntelliJ Ultimate. - person Eduard Wirch; 23.09.2020
comment
Имеет смысл @eduard. При использовании редакции сообщества. Неважно, анализатор памяти Eclipse отлично работает для меня. Спасибо - person ericn; 23.09.2020

Я хотел бы обновить приведенные выше ответы до 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

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

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

person nbtk    schedule 13.07.2018

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

person Katerina A.    schedule 20.10.2014
comment
Хорошо спасибо. Кажется, этот плагин требует, чтобы я запускал Java-процесс локально - это правильно? Я хочу экспортировать дамп кучи с сервера, скопировать его на свой локальный компьютер и проанализировать его здесь. - person vikingsteve; 20.10.2014
comment
Этот плагин только запускает VisualVM и открывает в нем желаемое приложение. Это не имеет отношения к вашему делу. Вы можете запустить VisualVM вручную и открыть дамп. - person Meo; 20.10.2014

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

person Deniss M.    schedule 11.12.2016
comment
Плагин несовместим с версиями IDEA после 2017.1. Просмотр памяти доступен прямо из коробки в IDEA 2017.1. plugins.jetbrains.com/files/8537/screenshot_16824.png - person kza; 11.09.2017

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

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

Вот и все, готово!

person jaken chen    schedule 05.06.2018
comment
Перефразируйте, используйте форматирование (stackoverflow.com/editing-help#comment-formatting) и добавьте пояснения. Кроме того, вы, вероятно, не захотите обсуждать свое имя, даже если вам не нравится имя вашей учетной записи. - person Yunnosch; 05.06.2018
comment
Например. (хотя я не очень хорошо знаю язык) Полагаю, что готово !!! не является частью предлагаемого решения. Подумайте о том, чтобы надеть это на другое (желательно с расширенным объяснением). Затем отформатируйте часть, которая на самом деле является кодом, с соответствующим форматированием. - person Yunnosch; 05.06.2018

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

введите описание изображения здесь

person Vikki    schedule 30.11.2019
comment
VisualVM Launcher: plugins.jetbrains.com/plugin/7115-visualvm-launcher - person Boken; 10.04.2021

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

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

person mcfinnigan    schedule 20.10.2014
comment
Этот плагин устарел. - person Meo; 20.10.2014
comment
Спасибо! Я изучу оба плагина, прежде чем приму один из ответов. - person vikingsteve; 20.10.2014