java内存分析

本文介绍了使用MAT和JVisualVM进行Java内存分析的方法。通过分析dump文件定位内存泄漏源头,并提供具体步骤指导如何查找问题代码。同时,还介绍了如何利用JDK自带工具快速诊断内存溢出问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java内存分析,这里介绍使用MAT和java自带的jvisualvm.。
MAT工具全称为Memory Analyzer Tool,一款详细分析Java堆内存的工具。从网上下载,可以作为eclipse的插件,也可以直接打开。

分析的是内存的dump文件,需要先把内存dump下来,可以使用jmap命令,或者再tomcat的启动参数中加上这个,-XX:+HeapDumpOnOutOfMemoryError,那么再发生内存溢出时,可以自动生成dump文件。

1.下载
2.下载后解压
这里写图片描述

3.打开要分析的dump文件,选择 leak suspects report(分析泄漏报告)或者进入首页后,点击此处
这里写图片描述

然后就能看到这个泄露情况,这里给出了提示,有三个地方可能发生内存泄漏

这里写图片描述

此处点击see stacktrace,查看堆栈信息,就可以到具体出现问题的代码

这里写图片描述

此处可以看到,再调用jedis塞数据时出现了问题,具体可以结合自己项目代码查看。
由于这里是我故意调小堆内存导致的,所以只要把内存加大即可。实际项目则要具体分析代码,是代码问题,还是内存分配不足问题。

另外,除了MAT,也可以用jdk自带的工具,再jdk的bin目录下
在装入dump文件后,在首页的概要,也是很清晰的就能看到内存溢出的错误,点击后能看到具体错误
这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值