GCViewer / MAT

  jvm出现问题时,我们可以开启jmx功能,使用jvisualvm或者jconsole等监控其他机器上的jvm的运行情况,如https://www.cnblogs.com/princessd8251/p/4374882.html所述。

  

  但很多情况下,我们无法直接监控其他机器上的jvm运行情况,有的只是一份gc的日志文件,这时可以使用GCViewer来直观的查看日志文件,看看GC频率,堆的各部分的增长情况等。

  

  使用GCViewer可以有一个直观的认识,但是GCViewer做不了分析功能。

  要分析内存泄露等,还需要使用jmap等生成堆信息文件,再使用MAT、jvisualvm等工具分析。如https://my.oschina.net/feichexia/blog/196575

  使用MAT、jvisualvm分析时,可以分析可能存在内存泄露的类,类之间的引用关系。也可以比较2个堆文件,查看那些对象的实例数一直增加,进一步分析泄露的原因。

  大内存的jvm生成的堆信息文件,使用MAT、jvisualvm本地分析时可能无法打开,占用资源太多。可以使用jmap配合jhat,内存占用要小很多。

  linux服务器上,jps,jstat是更方便的监控工具。

原文地址:https://www.cnblogs.com/lnlvinso/p/9873867.html