Ответ 1
Инструментарий IBM GC делает именно то, что вы просите.
https://www.ibm.com/developerworks/java/jdk/tools/gcmv/
Я не уверен, что он совместим с журналами GC от Sun JVM.
Я ищу инструмент или script, который возьмет консольный журнал из моего веб-приложения, проанализирует информацию об уборка мусора и осветит его.
Я запускаю JVM Sun Java 1.4.2 со следующими флагами:
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Выход журнала выглядит следующим образом:
54.736: [Full GC 54.737: [Tenured: 172798K->18092K(174784K), 2.3792658 secs] 257598K->18092K(259584K), [Perm : 20476K->20476K(20480K)], 2.4715398 secs]
Понимание нескольких сотен таких записей журналов было бы намного проще, если бы у меня был инструмент, который бы визуально отображал тенденции сбора мусора.
Инструментарий IBM GC делает именно то, что вы просите.
https://www.ibm.com/developerworks/java/jdk/tools/gcmv/
Я не уверен, что он совместим с журналами GC от Sun JVM.
gcviewer делает то, что вы хотите.
Я думаю, что некоторые люди добавляют Java-зонды, которые на самом деле не анализируют журналы сбора мусора, как говорится в вопросе...
Я пробовал другие (gcviewer, gchisto, IBM) и лучший инструмент для анализа логов GC, который я нашел, - HPjmeter
Он в основном предназначен для виртуальных машин HP-UX, но обычно он также работает с виртуальными машинами Sun и отлично работает.
(источник: xebia.com)
Я попробовал онлайн-инструмент http://gceasy.io, он может читать мой журнал jdk 1.8 gc.
Даже лучше, чем jconsole visualvm, который разрабатывается и распространяется свободно Sun. Он имеет плагин GC-анализа, называемый gchisto, который может вам помочь.
Изменить: Извините, я не видел вашего требования JDK 1.4.2. В этом случае visualvm не поможет вам, увы.
Самый мощный инструмент, который я нашел для работы с журналами IBM и Hotspot JVM, и визуализировать их - это IBM PMAT: https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e-634b51838e11
Я нахожу его как быстрее, так и дает больше деталей, чем инструмент в IBM Support Assistant. Он постоянно обновляется, наконец, июль'12.
Однако, похоже, есть некоторые проблемы с анализом журналов с политикой CMS, но, надеюсь, это может быть исправлено.
PrintGCStats тоже хорош, и дает хорошую статистику, но не для визуализации с течением времени, которая нуждается в некоторой работе.
Я использую YourKit java profiler, который позволяет вам измерять такие вещи и многое другое, но используя его собственный формат, а не анализировать журнал. Он может делать больше в Java 5, но должен работать под 1.4.
Попробуйте VisualGC от Sun. Существуют версии JDK 4 и 5, которые дают вам представление о том, что происходит в пространствах eden, generation и perm. Вам нужно добавить JAR и получить PID, а Bob - вашего дядю.
Несколько лет назад Джон Куумс (группа Hotspot GC) выпустил PrintGCStats, awk script, чтобы "обобщить статистику об сборе мусора, в частности, общие временные итоги gc, средние, максимальные и стандартные отклонения". Копия script размещена на java.net: http://java.net/projects/printgcstats
jconsole
может вам очень помочь, но я думаю, что это только Java 5 и более поздние версии. Однажды я услышал, как кто-то из SUN говорит в нашем университете, и он сказал, что сборщик мусора Java 6 намного лучше, чем старые, которые нуждаются в сложной настройке почти все время для больших приложений. Java 6 GC, похоже, значительно улучшает SMP.
gchisto plugin для VisualVM не работает https://gchisto.dev.java.net/
У меня есть файл со всеми подробностями printgc для jdk1.6, но не нашел инструмент для его чтения. Раньше с jdk1.5 мы использовали HPjmeter, он работал нормально, но теперь с jdk1.6 он не
Пробовал следующее: IBM Model Modeling and Analysis Tool для Java Garbage Collector - он не распознает файл. GCCollector не работает, он продолжает читать файл для анализа.
Как насчет того, чтобы попробовать какой-нибудь профилирующий инструмент вроде JProbe Freeware (плагин Eclipse).