在上文的jvisualvm只能体现出内存溢出 那么怎么能分析出哪里出问题了呢
首先我们使用这段代码使内存溢出
dump堆日志
在发生内存溢出时(如果发生gc了 那么将得不到溢出时的日志 )点击堆 dump 会生成.hprof文件 查看.hprof文件就可以分析出内存溢出情况(在dump时 应用会暂停)
安装MAT
下载网址 https://www.eclipse.org/mat/downloads.php
解压后 双击可以打开
查看.hprof文件
打开上文的.hprof文件
扫描二维码关注公众号,回复:
12653788 查看本文章
会发现这里有一个program
点击 See stacktrace 会发现报错日志 发现已经分析出有问题的地方了