当前位置: 代码网 > it编程>编程语言>Java > eclipse memory Analyzer(MAT) 内存泄漏分析

eclipse memory Analyzer(MAT) 内存泄漏分析

2024年08月02日 Java 我要评论
进入详情页之后,查找占用空间最大的类,然后通过 Path to GC Roots 和 可以通过右键 -> List objects -> with incoming references来查看具体是谁在使用这些byte[]。因为Memory Analyzer在分析堆内存的时候比较耗费内存,而Eclipse IDE本身又是比较耗费内存的,所以推荐使用独立安装的Memory Analyzer。解决方案:在mat目录下找到MemoryAnalyzer.ini配置文件,修改-Xmx的大小大于你当前文件的大小。

1 软件下载及配置

 1.1软件下载

        eclipse ide,它非常有用。因为memory analyzer在分析堆内存的时候比较耗费内存,而eclipse ide本身又是比较耗费内存的,所以推荐使用独立安装的memory analyzer。

安装包地址:https://www.eclipse.org/mat/downloads.php

独立安装的memory analyzer的独立版本所需的最低java版本是java 11。

 1.2 软件设置

  1. eclipse memory analyzer默认的启动堆最大内存为1g。这一步取决你堆内存文件的大小。我这边正式环境导出的堆文件大小大概3g多一点。所以索性我就将eclipse memory analyer,启动最大堆内存调成4g
  2. 操作步骤如下。
  3. 文件目录。

  1. 修改

2 堆内存下载

        使用命令 jmap -dump  下载堆内存数据

3 分析异常文件

 3.1 打开错误

错误1:an internal error occurred during: “parsing heap dump from

解决方案:在mat目录下找到memoryanalyzer.ini配置文件,修改-xmx的大小大于你当前文件的大小

eg: 当前下来的文件是2.5g,可以设置为4096m

3.2 分析步骤

  1. 点击 leak suspects (泄露疑点)

2:点击如下图:

详情如下

可以看出内存泄露的相关类

补充:

也可以通过 histgram 和 dominator tree 分析文件

进入详情页之后,查找占用空间最大的类,然后通过 path to gc roots 和 可以通过右键 -> list objects -> with incoming references来查看具体是谁在使用这些byte[]。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com