在win10系统上,生成dump文件,并查看
1 生成dump文件
在cmd窗口,通过【jps】命令查看jvm中启动的进程,此命令会附带上main函数所在类名。譬如springboot中的启动类AppLauncher,查看时会有如下图所示的LVMID对应数据。然后通过【jmp】命令生成dump文件,一般dump文件格式是hprof
2 查看dump文件
eclipse中marketplace中搜索memory,并安装Memory Analyzer插件
然后File->open File打开生成的dump文件,这里有两个经常用到的视图,下图中用红框标识出来
其中Histogram是用来查看jvm中对象的调用关系的,Leak Suspects是查看占用内存较大的根对象,以便分析内存泄漏。
1 点击Histogram,可以看到如下图所示的界面,可以在Regex处输入要查询对象的包路径或者对象名,对待查看对象过滤
譬如要查询ProcessInfoService,可以看到有IProcessInfoService接口及实现类ProcessInfoService。右键该类,在List Objects栏可以通过【with outgoing references】查看该类中的对象(引用的外部类);通过【with incoming references】查看该类被哪些类引用。如此可以方便的查看对象的引用关系
2 点击Leak Suspects,可以在如下的界面中,通过其中的链接查看对象详情,分析可能内存泄漏的对象以及占用内存较大的对象