Смотрите содержимое кучи Java во время выполнения - PullRequest
4 голосов
/ 08 февраля 2011

Я ищу любой инструмент, который позволяет мне видеть, как объекты создаются в куче во время выполнения. Я использовал VisualVM - Профили, но не смог найти, когда создается переменная определенного типа (та, которую я ищу). Может я что то не так делаю ... Я также буду благодарен за любую подсказку, как получить такую ​​информацию, используя любой API.

С уважением, Marcin

Ответы [ 3 ]

4 голосов
/ 08 февраля 2011

Как правило, профилировщики (такие как JProfiler ) позволяют вам увидеть это - см., Например, объяснение записи распределения screencast.

Однако они достигают этого, подключая агент к JVM, который позволяет им перехватывать операции низкого уровня - эта информация обычно недоступна ни пользователям, ни программам на Java. Таким образом, вы не сможете увидеть кучу через приложения JMX, такие как JConsole или JVisualVM.

2 голосов
/ 08 февраля 2011

Внутри VisualVM Profiler выберите «Настройки» и укажите класс, который вы хотите профилировать.Может быть, вам также нужно посмотреть на опцию, какие стеки распределения записей.

1 голос
/ 08 февраля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...