Eclipse Memory Analyzer(MAT)

1.Eclipse Memory Analyzer(简称MAT)是一个功能丰富且操作简单的JVM Heap Dump分析工具,可以用来辅助发现内存泄漏减少内存占用。

点击下载

2.简单使用

2.1.启动之后打开 File - Open Heap Dump… 菜单,然后选择生成的Heap DUmp文件,选择 “Leak Suspects Report”,然后点击 “Finish” 按钮。

在这里插入图片描述

2.2.操作完成之后会显示如图所示界面

在这里插入图片描述
1.问题出现的原因是:main线程(线程号为:0xf6560000)中有一个局部变量(数组类型)占用内存达到了243,270,680字节,占用了总的堆内存的99.92%,导致了OOM
2.Keywords:问题是出现在OtherTest类的main方法中的第16行

2.3.点击Details查看详细信息

在这里插入图片描述
1.可以看到,问题出现在java.util.ArrayList中
2.可以继续查看其他功能,例如Thread Properties、Thread Stack(同样是包含在Details中的)
2.1.查看Thead Properties功能的详细信息
在这里插入图片描述
该线程占用的堆大小
2.2.查看Thead Stack功能
在这里插入图片描述
查看线程的栈信息,可以看到问题出现在OtherTest类的main方法的第16行

其他功能使用

在overview页面
在这里插入图片描述
选中这个,点击进去能看到对象的引用树,以及对象占用内存的大小(shallow heap,retained heap,可以参考:https://blog.csdn.net/wwlwwy89/article/details/74330544)
点进去可以看到类似这种,
在这里插入图片描述
如上图标记所示,后面后thread标记的活着 前面有这个符号的,都可以进行如下操作
在这里插入图片描述
可以看到该线程的堆栈信息,如果是oom的场景下(假如是该线程导致的oom),就可以利用堆栈信息查看问题出现的详细原因

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值