Инструменты, доступные для отладки вопросов производства в Java Applications [Закрыто

StackOverflow https://stackoverflow.com/questions/2931398

  •  05-10-2019
  •  | 
  •  

Вопрос

Просто задаваясь вопросом, каковы различные инструменты и методы для отладки производственных проблем на приложениях Java. Нравиться,

  • Каковы способы и инструменты, чтобы взять нитокные свалки?
  • Каковы способы и инструменты для свалки кучи?
  • Какие инструменты для анализа вышеупомянутых свалов?

(Успенствие все в среде Linux / Unix)

Это было полезно?

Решение

Каковы способы и инструменты, чтобы взять нитокные свалки?

Для сброса ниток вы можете использовать JConsole, VisualVM или, проще, более просто отправить выходной сигнал в целевой процесс

kill -QUIT <pid> 

или

kill -3 <pid>

С Java 5 есть также jstack какая не зависит от платформы и имеет приятно -m Возможность печати как Java, так и родных кадров (смешанный режим).

Каковы способы и инструменты для свалки кучи?

С Sun VMS, jmap, Солнце Jconsole., Солнце VisualVm., SAP JVMMON. Для IBM VMS, проверьте эта страница. Отказ На самом деле, Eclipse Mat Wiki имеет хороший Получение кучи свалки Раздел Суммируя все варианты.

Какие инструменты для анализа вышеупомянутых свалов?

Для резьбы свалки я использую TDA - поток дамп анализатора (для солнца JDKS) и IBM Thread и Monitor Dump Analyzer (для IBM JDKS). Самурай также очень приятно (это работает как tail -f И автоматически поднимает нить скин с вашего STD / STDERR, он также может прочитать журналы «-Вербозы: GC») и был протестирован против VMS от Apple, Bea, HP, Sun и IBM (также можно прочитать IBM's Javacore).

Для кучи свалов, я использую VisualVm. (для солнца JDK) или IBM Heap Dump Analyzer (только для IBM JDKS) или Über потрясающе Eclipse Mat. в зависимости от моих потребностей. Позже есть Способен работать с Dumps HPROF двоичными кучей (производства SUN, HP, SAP, ETC ... JVMS), IBM System Dumps (после предварительной обработки их) и IBM портативных кучи Dumps (PhD) с различных платформ IBM).

Другие советы

Предполагая JDK 6, взгляните на следующую статью для получения поточных дампов беговой программы:

http://java.sun.com/developer/technalarticles/programming/stacktrace/

Вы можете использовать JHAT, чтобы сделать анализ кучи:

http://java.sun.com/javase/6/docs/technotes/tools/share/jhat.html.

Если вы хотите сделать дампы памяти, посмотрите на JMAP:

http://java.sun.com/javase/6/docs/technotes/tools/share/jmap.html.

В качестве альтернативы, если вам нужно сделать еще несколько в глубине анализа, посмотрите на профилировщик, такие как Yourkit:

http://www.yourkit.com/

Есть также эти две вещи, которые могут вас заинтересовать:

Там нет стандартного набора инструментов для JVMS. Это зависит от поставщика, и вы должны проконсультироваться с документацией.

Для Sun Java 6 программа VisualVM очень, очень полезна, чтобы получить быстрый профиль и стопку следа запущенной программы.

Инструмент, который я использую для такого рода отладки солнца JVM

  • jstack. взять свалку
  • jmap взять свалку памяти / кучи или гистограмма
  • Eclipse Mat. Для пост-анализа кучи Dump, производимой jmap
  • Visual VM. Имеет хороший интерфейс для живого анализа VM (также может взять кучу и нить свалки)

Для отладки проблем с ассигнованиями памяти, Inmemprofiler. Может использоваться в командной строке. Live VS Сборные ассигнования могут быть отслеживаются, и собранные объекты могут быть разделены на ведра на основе их жизни.

В режиме трассировки этот инструмент можно использовать для Определите источник ассигнований памяти.

И я думаю, что лучший способ отладки приложения Java в производственной среде не свал и так далее, но хорошее управление журналы.

См., Например SLF4J..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top