Как я могу видеть то, что находится в моей "куче" в Java?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

16
задан Kara 1 February 2014 в 20:29
поделиться

7 ответов

VisualVM включен в новые выпуски Java. Можно использовать это, чтобы создать дамп "кучи" и посмотреть на объекты в нем.

, С другой стороны, можно также создать heapdump commandine использующий jmap (в jdk/bin dir):

jmap -dump:format=b,file=heap.bin <pid>

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

jmap -histo <pid>

, я могу рекомендовать Памяти Eclipse Анализатор ( http://eclipse.org/mat ) для усовершенствованного анализа дампов "кучи". Это позволяет Вам узнать точно, почему определенный объект или набор объектов живы. Вот запись в блоге, показывающая Вам, какую Память Анализатор может сделать: http://dev.eclipse.org/blogs/memoryanalyzer/2008/05/27/automated-heap-dump-analysis-finding-memory-leaks-with-one-click/

24
ответ дан 30 November 2019 в 16:50
поделиться

При необходимости в чем-то свободном попробуйте VisualVM

Из описания проекта:

VisualVM является визуальным инструментом, интегрирующим инструменты JDK командной строки и легкие профильные возможности. Разработанный и для использования времени разработки и для производственного времени.

6
ответ дан 30 November 2019 в 16:50
поделиться

Используйте профилировщика как JProfiler или YourKitProfiler

1
ответ дан 30 November 2019 в 16:50
поделиться

JProfiler работал очень хорошо на меня....

http://www.ej-technologies.com/products/jprofiler/overview.html

1
ответ дан 30 November 2019 в 16:50
поделиться

Используйте Память Eclipse Анализатор

нет никакого другого инструмента, что я знаю о любом инструменте, который близко подходит, это - функциональность и производительность и цена (свободный и с открытым исходным кодом) при анализе дампов "кучи".

1
ответ дан 30 November 2019 в 16:50
поделиться

Если Вы используете систему, которая поддерживает GTK, Вы могли попытаться использовать JMP.

0
ответ дан 30 November 2019 в 16:50
поделиться

Можно попробовать Детектор Утечки памяти, который является частью комплекта инструментов JRockit Mission Control. Это позволяет Вам осматривать "кучу", в то время как JVM работает. Вы не должны брать снимки все время. Можно просто соединиться онлайн с JVM и затем видеть, как "куча" изменяется между сборками "мусора". Можно также осмотреть объекты, следовать за ссылками графически и получить отслеживания стека от того, где приложение в настоящее время выделяет объекты. Вот резюме введение .

инструмент свободен использовать для разработки, и можно загрузить его здесь .

0
ответ дан 30 November 2019 в 16:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: