我正在寻找一个工具或脚本,它将从我的网络应用程序中获取控制台日志,解析垃圾收集信息并以有意义的方式显示它。
我正在使用以下标志启动Sun Java 1.4.2 JVM:
-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]
如果我有一个能够直观地绘制垃圾收集趋势图的工具,那么理解几百种这类日志条目就会容易得多。
答案 0 :(得分:30)
gcviewer做你想做的事。
答案 1 :(得分:15)
答案 2 :(得分:12)
我认为有些人正在添加Java探测器,这些探测器并不真正解析垃圾收集日志,因为问题表明......
我尝试过其他人(gcviewer,gchisto,IBM),我发现用于分析GC日志的最佳工具是HPjmeter
它主要用于HP-UX JVM,但它通常也适用于Sun JVM并且做得很好。
alt text http://blog.xebia.com/wp-content/uploads/2008/09/hpjmeter-gctime.jpg
答案 3 :(得分:8)
我尝试了一个在线工具http://gceasy.io,它可以读取我的sun jdk 1.8 gc log。
答案 4 :(得分:7)
甚至比jconsole更好的是visualvm,它由Sun自由开发和分发。它有一个名为gchisto的GC分析插件,可能对您有帮助。
编辑抱歉,我没有看到您的JDK 1.4.2要求。在那种情况下,visualvm不会帮助你,唉。
答案 5 :(得分:7)
我发现使用IBM和Hotspot JVM日志并可视化它们的最强大的工具是IBM的PMAT: https://www.ibm.com/developerworks/mydeveloperworks/groups/service/html/communityview?communityUuid=22d56091-3a7b-4497-b36e-634b51838e11
我发现它比IBM Support Assistant中的工具更快,并提供更多详细信息。 它正在不断更新,最后是7月和12月。
然而,使用策略CMS解析日志时似乎存在一些问题,但希望可以修复。
PrintGCStats也非常好,并且提供了很好的统计数据,但是随着时间的推移不能用于可视化,这需要一些工作。
答案 6 :(得分:5)
我使用YourKit java profiler,它可以让你测量这类东西,等等,但是使用它自己的格式而不是分析日志。它可以在Java 5下完成更多工作,但应该在1.4下工作。
答案 7 :(得分:3)
从Sun尝试VisualGC。 JDK 4和5版本可以让您清楚地了解伊甸园,世代和烫发空间的情况。你需要添加一个JAR并获得一个PID而Bob是你的叔叔。
答案 8 :(得分:3)
几年前,John Coomes(Hotspot GC小组)发布了PrintGCStats,这是一个awk脚本,用于“总结有关垃圾收集的统计数据,特别是gc暂停时间总计,平均值,最大值和标准偏差。”。该脚本的副本托管在java.net上:http://java.net/projects/printgcstats
答案 9 :(得分:2)
jconsole
可以帮到你很多,但我认为它只是Java 5及更高版本。有一次我听到SUN的某个人在我们大学讲话,他说Java 6的垃圾收集器比旧的垃圾收集器要好很多,而且几乎所有时间都需要复杂的调整来处理大型应用程序。在SMP上,Java 6 GC似乎扩展得更好。
答案 10 :(得分:2)
VisualVM的gchisto插件不起作用https://gchisto.dev.java.net/
我有一个文件,其中包含jdk1.6的printgc的所有详细信息,但找不到可以阅读的工具。 以前使用jdk1.5我们使用HPjmeter它工作正常,但现在用jdk1.6它没有
尝试以下内容:用于Java垃圾收集器的IBM模型建模和分析工具 - 它无法识别该文件。 GCCollector不起作用,它继续读取文件进行分析。
答案 11 :(得分:1)
如何试用像JProbe Freeware(Eclipse插件)这样的分析工具。