我正在寻找一个工具或脚本,它将从我的Web应用程序中获取控制台日志,解析垃圾收集信息并以有意义的方式显示它.
我正在使用以下标志启动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]
如果我有一个能够直观地绘制垃圾收集趋势图的工具,那么理解几百种这样的日志条目就会容易得多.
gcviewer做你想要的.
IBM的GC工具包正是您所要求的.
https://www.ibm.com/developerworks/java/jdk/tools/gcmv/
我不确定它是否与Sun的JVM的GC日志兼容.
我想有些人正在添加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
我尝试了一个在线工具http://gceasy.io,它可以读取我的sun jdk 1.8 gc log.
甚至比jconsole更好的是visualvm,它由Sun自由开发和分发.它有一个名为gchisto的GC分析插件,它可以帮到你.
编辑:对不起,我没有看到您的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中的工具更快,并提供更多详细信息.它正在不断更新,最后是7月12日.
但是,使用策略CMS解析日志时似乎存在一些问题,但希望可以修复.
PrintGCStats也非常好,并提供了很好的统计数据,但不是随着时间的推移可视化,需要一些工作.
我使用YourKit java profiler,它可以让你测量这类东西,等等,但是使用它自己的格式而不是分析日志.它可以在Java 5下完成更多工作,但应该在1.4下工作.