分析工具
此次使用的是:MAT (Memory Analyzer Tool), Eclipse/SpringToolSuit 集成 MAT
也可以使用:JProfile
内存文件 ****.hprof
摸索过程
分析:一般内存溢出的对象是由开发代码产生的,出现内存溢出的可能性是就是在项目类路径下。
- 打开hprof文件
- 打开Dominator Tree
- 正则搜索类路径
- 按照Retained Size倒序排序(Retained heap中文意思是保留堆,它的大小为对象本身大小(即shallow heap大小)与其所引用对象大小之和)
依次查看各个类中大对象占比情况,以及对照相应的代码一一排查,最终定位问题
求
此次复盘分析纯粹是独立摸索,各位大佬有更好的方式或者排查思路,帮忙提示提示