上节介绍了GC日志的打印及含义,但是GC日志看起来比较麻烦,本节将会介绍一下GC日志可视化分析工具GCeasy和GCviewer。通过GC日志可视化分析工具,我们可以很方便的看到JVM各个分代的内存使用情况、垃圾回收次数、垃圾回收的原因、垃圾回收占用的时间、吞吐量等,这些指标在我们进行JVM调优的时候是很有用的。
GCeasy介绍
官网地址:https://gceasy.io/,GCeasy是一款在线的GC日志分析器,可以通过GC日志分析进行内存泄露检测、GC暂停原因分析、JVM配置建议优化等功能,而且是可以免费使用的(有一些服务是收费的)。
上节《GC日志介绍》我们介绍了各个垃圾收集器的GC日志,我们打开GCeasy的官网,上传我们的GC日志(我这里用的Parallel收集器),点击Analyze进行分析即可得到报告,得到的报告可以进行下载。由于报告内容比较多,我就捡几个主要的截个图简单说明一下,其他的可以自己看一下,而且可以自己试试不同的垃圾收集器的GC日志的分析报告有什么区别。
JVM的各个分代区域分配的内存及使用峰值的内存
关键性能指标:吞吐量及GC暂停平均时间、最大时间、各个时间段的比例。
GC发生的原因、次数、时间等
GCViewer介绍
上面介绍了一款在线的GC日志分析器,下面介绍一个离线版的GCViewer,其最新版本为1.36,我用的就是这个版本,需要jdk1.8才可以使用,Github地址为https://github.com/chewiebug/GCViewer,下载下来之后执行 mvn clean install -Dmaven.test.skip=true 命令进行编译,编译完成后在target目录下会看到jar包,双击打开即可。
打开之后,点击File->Open File打开我们的GC日志,可以看到如下图,图标是可以放大缩小的,主要内容就是红线圈住的部分,里面的内容跟上面的GCeasy的比较类似,具体的可以看下GitHub中的描述。