栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用MAT进行内存问题定位

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用MAT进行内存问题定位

文章目录
    • MAT简介
    • 如何使用MAT
      • 1、如何找到占用内存多的java进程号
      • 2、使用jmap生成java程序的当前堆快照
      • 3、利用MAT生成报告
    • 报告解读
      • 系统视图报告 System_Overview.zip
      • 内存泄露检测报告 Leak_Suspects.zip
      • 分析对象属于同一个包或者被同一个类加载器加载Top_Components.zip

MAT简介

MAT 全称 Eclipse Memory Analysis Tools 是一个分析 Java堆数据的专业工具,可以计算出内存中对象的实例数量、占用空间大小、引用关系等,看看是谁阻止了垃圾收集器的回收工作,从而定位内存泄漏的原因。

https://www.eclipse.org/mat/downloads.php --下载地址

http://help.eclipse.org/oxygen/index.jsp?topic=/org.eclipse.mat.ui.help/welcome.html --官网使用教程

可调参数

文件名称:MemoryAnalyzer.ini

参数-Xmx 6144m

参数-data

如何使用MAT 1、如何找到占用内存多的java进程号

使用Linux的top命令

2、使用jmap生成java程序的当前堆快照
jmap -dump:format=b,file=java_pid718.hprof 718
./jmap -dump:format=b,file=/opt/logs/java_pid27258.hprof 27258

Q: well-known file is not secure

A:pid的启动用户不是当前用户,需要切换到启动用户下执行jmap即可

3、利用MAT生成报告

相关命令: ./ParseHeapDump.sh javapid_6838.hprof org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components

会产生三个文件夹java_pid718_Leak_Suspects.zip java_pid718_System_Overview.zip java_pid718_Top_Components.zip

**浅堆 shallow heap **

指对象本身占用内存的大小 不包括内部引用对象的大小。

深堆 retained heap

一个对象的深堆指的是通过g该对象的反问道的所有对象的浅堆之和,即对象被回收后,可以释放的真实空间。

报告解读 系统视图报告 System_Overview.zip

  • Thread Overview

在Thread Overview视图可以看到:线程对象/线程栈信息、线程名、Shallow Heap、Retained Heap、类加载器、是否Daemon线程等信息

  • Top Consumers

    通过图形列出最大的object

  • Class Histogram

    该视图以Class类的维度展示每个Class类的实例存在的个数、 占用的 [Shallow内存] 和 [Retained内存] 大小

  • Heap Dump Overview

  • System Properties

内存泄露检测报告 Leak_Suspects.zip

内存泄露的概念:
1、内存泄露的这些对象是从GC root可达的,从GC root存在通路可以与其相连
2、这些对象是无用的,即程序以后不会再使用这些对象
至于怎么定义程序不会再使用的对象,那就要看具体的程序逻辑了,说白了内存泄露就是该回收的内存没有被回收

MAT工具分析了heap dump后在界面上非常直观的展示了一个饼图,该图深色区域被怀疑有内存泄漏。


分析对象属于同一个包或者被同一个类加载器加载Top_Components.zip
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958587.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号