Как просмотреть трассировку стека выделения памяти в Java VisualVM

В этой статье описывается, как просмотреть трассировку стека выделения памяти в Java VisualVM: http://rejeev.blogspot.de/2009/04/analyzing-memory-leak-in-java.html

Короче говоря, определите пользовательский пресет в параметрах Java VisualVM и установите флажок "записывать трассировки стека выделений памяти" на вкладке настроек памяти.

Теперь, когда я выбираю этот пользовательский пресет и запускаю профилирование памяти, я все еще не могу просмотреть трассировку стека распределения памяти. Нет действия «Создать снимок и показать трассировку стека распределения» при щелчке правой кнопкой мыши, как описано в статье, или чего-то подобного. Я использую VisualVM 1.7.

Как я могу просмотреть эти трассировки стека распределения?


person sina72    schedule 18.08.2012    source источник
comment
Где вы ищете действие правой кнопки мыши «Сделать снимок и показать трассировку стека распределения»? Вы выбрали конкретный класс в таблице результатов?   -  person Tomas Hurka    schedule 19.08.2012
comment
Убедитесь, что ваши JDK и JVM совместимы (например, они оба 32-разрядные или оба 64-разрядные).   -  person Daniel    schedule 25.12.2012


Ответы (2)


Включите профилирование Memory на вкладке Sampler, затем нажмите кнопку Heap Dump.

person jkee    schedule 18.08.2012
comment
Это нечто другое - дамп кучи не показывает трассировку стека распределения. Кроме того, чтобы получить дамп кучи, вам не нужно использовать профилирование «Память» на вкладке «Сэмплер». Вы можете получить дамп кучи на вкладке «Монитор» или в контекстном меню отслеживаемого приложения. - person Tomas Hurka; 19.08.2012
comment
Согласен, это ответ на другой вопрос, хотя это полезный подход. Eclipse Memory Analyzer действительно полезен для анализа дампов кучи, но моментальный снимок VisualVM с трассировкой распределения действительно полезен независимо. - person adamfisk; 23.09.2013
comment
Извините за минус: это было случайно (должно быть, я нажал на нее, пытаясь перейти на другую страницу)! Для SOF существует правило коленного рефлекса, согласно которому через 5 минут ваш голос фиксируется. Извините за это! - person WestCoastProjects; 30.08.2017

Если вы не видите эту опцию, перейдите в «Профилировщик» -> установите флажок «Настройки» и активируйте «Записывать трассировку стека распределения», когда профилировщик не активен.

person Peter Clause    schedule 09.09.2013
comment
Кроме того, во время работы профилировщика вам нужно нажать кнопку моментального снимка, только тогда вы можете щелкнуть правой кнопкой мыши и просмотреть трассировки стека распределения. - person qwertzguy; 26.11.2014