Рубрики
Без рубрики

Как получить дамп потока из кучи свалка

Недавно я отлаживал некоторые неприятные тупики, и, как обычно бывает в подобных ситуациях, мне это было необходимо… С тегами java, jvm, tooling.

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

Я начал искать в Google, и, к моему удивлению, я не смог найти простой в использовании инструмент, который может это сделать. Большинство инструментов анализа дампов кучи могут показать вам данные потока, но не могут экспортировать их в формате, который связан с дампами потоков. Я принял свою веру и продолжаю. Пока я не заметил эту красивую кнопку в VisualVM, которая делала именно то, что я хотел.

Шаг за шагом

Откройте VisualVM

VisualVM – это средство устранения неполадок JVM, оно поставляется в комплекте с JDK 6,7,8 и является автономным бесплатным инструментом. Это может помочь вам с JMX, профилированием, мониторингом памяти, получением и отображением дампов потоков и кучи и многим другим. Если у вас его нет на вашем локальном компьютере, загрузите его и узнайте, как им пользоваться. Я обязательно улучшу ваши возможности по устранению неполадок.

Откройте свой дамп кучи в VisualVM

Это просто. Откройте дамп кучи (файл hprof) с помощью кнопки Загрузить снимок.

Переключитесь на просмотр потока

После загрузки дампа кучи в верхнем левом углу вкладки появляется выпадающий список. Переключите его на потоки.

Переключите представление потока на HTML переехал

Это название сбивает с толку, но оно будет делать именно то, что вам нужно.

Рядом с выпадающим списком находится пара кнопок для переключения способа отображения потока. Первый – это необычный пользовательский интерфейс, а второй (с непонятным названием HTML) преобразует информацию о потоке в текстовый формат дампа потока. Эта операция займет некоторое время, так как VisualVM преобразует информацию о потоке в формат.

Скопируйте и вставьте

Теперь вы можете скопировать текст и наслаждаться дампом потока.

Одно изображение вместо 1000 слов

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

Оригинал: “https://dev.to/pavel_polivka/how-to-get-thread-dump-from-heap-dump-44h7”