1、下载MAT工具
2、演示内存溢出
- 新建一个springboot项目,新建一个controller
@RestController
public class HeapControler {
private ArrayList<User> arrayList = new ArrayList<User>();
@GetMapping("/heapmmo")
public void heapDemo(){
while (true) { //死循环导致内存溢出
arrayList.add(new User("213","231"));
}
}
}
- 修改虚拟机 vm,添加 -Xmx32M -Xms32M

- 运行springboot项目,访问 http://localhost:8080/heapmmo
3、使用 jmap 导出内存映像文件
-
打开cmd,进入桌面

-
执行命令
jps

本文介绍了如何使用MAT工具结合jmap命令分析内存泄漏问题。首先通过创建一个SpringBoot项目并模拟内存溢出来演示问题,然后利用jmap导出内存映像文件。在MAT中打开分析文件,通过不同方式定位问题,如对象数量和内存占用百分比,最终发现User类存在大量实例,疑似由HeapController的ArrayList引起。
最低0.47元/天 解锁文章
1908

被折叠的 条评论
为什么被折叠?



