Недавно я отлаживал некоторые неприятные тупики, и, как обычно бывает в подобных ситуациях, мне нужно было заглянуть в дампы потоков. К несчастью для меня, единственное, что у меня было, – это кучный дамп. Не поймите меня неправильно, дампы кучи содержат гораздо больше информации, включая необходимую информацию о потоке. Но дампы кучи также очень большие (могут составлять гигабайты), поэтому они не очень практичны, если вы хотите поделиться ими с коллегой или загрузить их в онлайн-инструменты анализатора, такие как 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”