精华内容
下载资源
问答
  • mat分析工具window64位

    2018-11-22 16:48:24
    mat分析工具window64位
  • MemoryAnalyzer-1.9.1.20190826_mat.zip MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器。可以用于查找内存泄露以及查看内存消耗情况。MAT是基于Eclipse开发的,是一款免费的性能分析工具。
  • MAT内存分析工具,支持版本windows64位。 最近项目遇到oom问题,上传一下查询oom的心酸路程的工具。
  • dump文件分析,java
  • 此工具为MAT(MemoryAnalyzerTools)win32位工具,用来做内存分析,供JAVA或android开发者使用,解压即用相当方便,喜欢的小伙伴可以试试!
  • MAT jvm 分析工具,mac,windown 下载地址 链接:https://pan.baidu.com/s/1MUN8HIT88e3LnXzJGOumpg 提取码:uod1

    链接:https://pan.baidu.com/s/1MUN8HIT88e3LnXzJGOumpg
    提取码:uod1

    展开全文
  • 使用MAT分析dump文件

    2020-12-30 11:23:53
    文章目录下载配置MAT基本参数jmap dump整个堆linux MAT分析 dump查看报告结果 下载 linux 下载 windows 下载 配置MAT基本参数 修改MAT的内存大小, 注意这个大小要根据你dump文件大小来的,如果dump文件是5GB那么 ...

    下载

    linux 下载
    windows 下载

    配置MAT基本参数

    修改MAT的内存大小, 注意这个大小要根据你dump文件大小来的,如果dump文件是5GB那么 这里最好配>5GB 否则会报MAT内存不足的异常
    MemoryAnalyzer.ini
    修改MemoryAnalyzer.ini 的 -Xmx6024m

    jmap dump整个堆

    jmap -dump:format=b,file=jmap.info PID

    linux MAT分析 dump

     ./ParseHeapDump.sh jmap.info  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components
    

    结果会生产如下三个zip文件,很小可以直接拷贝到本机

    jmap_Leak_Suspects.zip
    jmap_System_Overview.zip
    jmap_Top_Components.zip
    

    查看报告结果

    有两种查看报告的方法:

    1. 直接把zip下载到本地,然后解压用浏览器查看index.html
    2. 把zip下载到本地, 用MAT可视化工具解析zip

    参考:https://cloud.tencent.com/developer/article/1668605

    展开全文
  • 2.3、分析问题 点击Problem Suspect 1的Details,查看Thread Stack,可以只管看到报错内容 三、获取内存dump文件 3.1、通过jdk自带的jmap命令获取 jmap -dump:format=b,file=D:\dump\dumpN.

    一、安装
    1.1、下载网站:https://www.eclipse.org/mat/downloads.php
    1.2、直接安装

    二、使用

    2.1、导入dump的文件,选择Leak Suspects Report

     

    2.3、分析问题

    点击Problem Suspect 1的Details,查看Thread Stack,可以只管看到报错内容

    三、获取内存dump文件
    3.1、通过jdk自带的jmap命令获取 jmap -dump:format=b,file=D:\dump\dumpName.hprof [pid]

     

    3.2、在jdk启动加参数中加: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\dump\ ,然后应用启动后出现内存异常则会自动导出dump文件,默认的文件名是:java_pid<进程号>.hprof。

    注意:获取dump文件必须是一出现内存异常就获取dump文件,这样获取的文件信息才比较准确,如果过了一段时间在导出dump文件,就会因gc的缘故,导致信息不准确,所以推荐第二种方式获取dump文件。

     

     

     

    四、linux下如何操作

    下载
    wget http://eclipse.stu.edu.tw/mat/1.9.0/rcp/MemoryAnalyzer-1.9.0.20190605-linux.gtk.x86_64.zip
    1
    解压
    unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip
    1
    修改MAT的内存大小
    vi MemoryAnalyzer.ini
    1
    jmap dump整个堆
    jmap -dump:format=b,file=[hprof文件] [进程ID]
    1
    MAT分析 dump
     ./ParseHeapDump.sh [hprof文件]  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components
    1
    分析报告
    结果会生产如下三个zip文件,很小可以直接拷贝到本机

    jmap_Leak_Suspects.zip
    jmap_System_Overview.zip
    jmap_Top_Components.zip

    展开全文
  • MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    MAT是什么?

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。

    安装 MAT

    和其他插件的安装非常类似,MAT 支持两种安装方式,一种是“单机版“的,也就是说用户不必安装 Eclipse IDE 环境,MAT 作为一个独立的 Eclipse RCP 应用运行;另一种是”集成版“的,也就是说 MAT 也可以作为 Eclipse 的一部分,和现有的开发平台集成。

    集成版的安装需要借助 Update Manager。

    ------------------------------------------------------------------------------------------------------------------------------------------

    由于工作统一需要,使用idea ,此处便直接演示如何安装独立版的MAT分析工具;

    下载安装

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

    2、选择Windows(x86_64); ps:根据自己系统下载相对应的版本,我这里下载的是Windows64位版的

     

    3、点击Download;下载完得到一个zip文件,解压后得到mat文件;

     

    4、双击MemoryAnalyzer.exe 打开MAT分析工具;

    使用说明:

    1、环境:

      运行内存分析器的最低Java版本是 1.8.0

    2、使用 Memory Analyzer Tools 获取堆存储

         1、启动进程仅需单击两次。在菜单中,选择“file --> Acquire Heap Dump...”  或者有直接生成好的dump文件,则直接Open Heap Dump ,打开即可;

         2、选择Acquire Heap Dump后。您可以看到正在运行的Java进程;选择你所需要分析的java进程,我这里是选择项目的主模块,因为项目为一个微服务架构体系。您会在底部注意到为堆转储文件自动生成的路径。顺便说一句,我建议选择一个仅包含转储的文件夹,接着finish即可。MAT除了它之外还生成许多其他文件。

    标题

    3、finish完后,等待堆转储写入磁盘并由MAT解析。对于巨大的Java堆大小,这些操作可能需要一些时间。右下角会有进度条加载

    标题

    4、加载完后,随后会弹出如下一个新的对话框,提示您进行快速概述,默认选择第一个(泄漏可疑报告),finish即可。 

    5、及自动展开如下该窗口,即可进行内存分析;

    6、实际上,这种方式要求该进程仍在运行。这是一个调试/开发用例 。

    7、介绍一下下面的Actions的几个标签;重点介绍Histogram  Leak Suspects ,其余的暂待研究,

    • Histogram :可以列出内存中的对象,对象的个数以及大小。
    • Dominator Tree:可以列出那个线程,以及线程下面的那些对象占用的空间。
    • Top consumers:通过图形列出最大的object。
    • Leak Suspects:通过MA自动分析泄漏的原因。

    ------------------------------------------------------------------------------------------------------------------------------------------

    1、Histogram :Lists number of instances per class

    Histogram是我们使用最多的一个,可以列出内存中的对象,对象的个数及其大小

    1. Class Name : 类名称,java类名
    2. Objects : 类的对象的数量,这个对象被创建了多少个
    3. Shallow Heap :一个对象内存的消耗大小,不包含对其他对象的引用
    4. Retained Heap :是shallow Heap的总和,也就是该对象被GC之后所能回收到内存的总和

    点击Objects  或者 Shallow Heap  可以直观看到,定位到项目上具体哪一个实体所耗内存情况,

     然后单击右键,Lists Objects --->  with incoming references  可以具体看到那些对象引用了。

    一般来说,Shallow Heap堆中的对象是它的大小和保留内存大小相同的对象是堆内存的数量时,将释放对象被垃圾收集。
    保留设置一组主要的对象,例如一个特定类的所有对象,或所有对象的一个特定的类装入器装入的类或者只是一群任意对象,是释放的组对象如果所有对象的主要设置变得难以接近的。保留设置包括这些对象以及所有其他对象只能通过这些对象。保留大小是总堆大小中包含的所有对象的保留。------摘自eclipse 

    关于的详细讲解,建议大家可以查看Shallow heap & Retained heap,这是个很重要的概念。

    2、Dominator Tree: List the biggest objects and what they keep alive

    我们可以看到session 占比最大;

    3、Consumers: Print the most expensive objects grouped by class and by package.

    这张图展示的是占用内存比较多的对象的分布,下面是具体的一些类和占用。

     

     按等级分布的类使用情况,其实也就是按使用次数查看,org.apache.shiro.web.session.mgt.DefaultWebSessionManager被排在第一

    还有一张图是我们比较关心的,那就是按包名看占用,根据包我们知道哪些公共用的到jar或自己的包占用;

    如此分析,就可以看到包和包中哪些类的占用比较高。

    4、Leak Suspects : includes leak suspects and a system overview

    自动分析内存内存泄漏的原因,可以直接定位到Class,且行数。

     

    在报告上最醒目的就是一张简洁明了的饼图,从这份报告,看到该图深色区域被怀疑有内存泄漏,可以发现整个heap只有442.7M内存,深色区域就占了82%。所以,MAT通过简单的报告就说明了项目是有可疑代码的,具体点开详情来找到类;

    在图的下方还有对这个可疑对象的进一步描述。我们可以看到内存是由org.apache.shiro.web.session.mgt.DefaultWebSessionManager 的实例消耗的,org.springframework.boot.loader.LaunchedURLClassLoader 负责这个对象的加载。这段描述非常短,但我相信您已经可以从中找到很多线索了,比如是哪个类占用了绝大多数的内存,它属于哪个组件等等。

    接下来,我们应该进一步去分析问题,为什么一个 DefaultWebSessionManager 会占据了系统 82 的内存,谁阻止了垃圾回收机制对它的回收。

    接着点击 下方的 Details > ,如下:

    a、可以看到 Accumulated Objects by Class in Dominator Tree 【从根元素到内存消耗聚集点的最短路径】

    我们可以很清楚的看到整个引用链,内存聚集点是一个拥有大量对象的集合,如果你对代码比较熟悉的话,相信这些信息应该能给你提供一些找到内存泄露的思路了。

    接下来,我们再继续看看,这个对象集合里到底存放了什么,为什么会消耗掉如此多的内存。

    b、 Accumulated Objects in Dominator Tree 【内存消耗聚集对象信息】

    在这张图上,我们可以清楚的看到,这个对象集合中保存了大量ConcurrentHashMap对象的引用,就是它导致的内存泄露。

    至此,我们已经拥有了足够的信息去寻找泄露点,回到代码,你会发现原来是session 在暂存token的时候,业务需求,在每调用一次接口,session便要用map存一次token,定时任务的产生,导致项目不到一天便挂了,至此, 问题所导致内存泄露缘由已经找到,具体怎么解决暂代思考。

    ------------------------------------------------------------------------------------------------------------------------------------------

    总结

    从上面的例子我们可以看到用 MAT 来进行堆转储文件分析,寻找内存泄露非常简单,尤其是对于新手而言,这是一个很好的辅助分析工具。但是,MAT 绝对不仅仅是一个“傻瓜式”内存分析工具,它还提供很多高级功能,比如 MAT 支持用 OQL(Object Query Language)对 heap dump 中的对象进行查询,支持对线程的分析等,有关这些功能的使用可以参考 MAT 的帮助文档。

    如果文章对您有所帮助,就给文章的右上角或者文章的末尾给怂怂一个赞吧!(づ ̄ 3 ̄)づ

    如果喜欢怂怂写的分享文,就给阿怂点个关注吧!(๑′ᴗ‵๑)づ╭❤~

    为什么创建出了 大量hashmap 却不会被GC回收掉或者垃圾回收率远远低于创建速率?如果有大佬知道此问题如何解决或者熟悉GC回收机制的,就请给阿怂留下您的解决办法或者思路吧,阿怂我感激不尽,头都快要被挠秃了o(╥﹏╥)o,太难了。

    展开全文
  • Mat分析

    2020-06-16 01:01:16
    1、mat.hpp 在OpenCV文件目录中可以找到两个mat.hpp,位于不同的文件路径里,分别是: B:\OpenCV\opencv\sources\modules\core\include\opencv2\core B:\OpenCV\opencv\sources\modules\gapi\include\opencv2\gapi\...
  • 本地安装MAT(内存分析工具)

    千次阅读 2018-01-05 20:50:03
    1.在eclipse官网下载mat.地址链接为http://www.eclipse.org/mat/downloads.php.根据需要下载我要的这个版本 2.解压,将MemoryAnalyzer-1.7.0.20170613-win32.win32.x86_64.zip解压(解压时使用解压到Memory...
  • cmd打开命令行,cd到\ android-sdk-windows\tools所在目录,并输入命令hprof-conv xxxxx.hprof yyyyy.hprof,其中xxxxx.hprof为原始文件,yyyyy.hprof为转换过后的文件,.hprof文件处理完毕,可以用来分析内存泄露...
  • MemoryAnalyzerTool内存分析工具,win版64位,帮助分析内存
  • 1.在linux下首先找到tomcat的PID步骤1:ps aux|grep tomcat_1步骤2:用jhat生成dump文件,文件后缀为hprof(dump文件后缀的用mat打不开)jmap -dump:format=b,file=/opt/tomcat6666.hprof 15837步骤3:下载MAThttp:/...
  • 看到网上有很多下载的地方,但是要么要钱,要么积分大都是50分,这里分享一下,只要2分。
  • 前言 在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着严重问题,可能是灾难性的。...如未说明,本文均使用Java 5.0 on Windows XP SP3环境。 为什么用MAT...
  • 通过MAT分析内存泄漏

    千次阅读 2020-01-04 15:08:52
    获得dump文件 通过命令jmap -dump:live,format=b,file=***.hprof pid eg:jmap -...如图: MAT使用参考博客: Shallow heap & Retained heap:https://www.iteye.com/blog/bjyzxxds-1532937 jmap和MAT分析JVM堆内存:...
  • 使用MAT分析内存泄露

    千次阅读 2015-05-19 07:12:01
    使用MAT分析内存泄露 对于大型服务端应用程序来说,有些内存泄露问题很难在测试阶段发现,此时就需要分析JVM Heap Dump文件来找出问题。随着单机内存越来越大,应用heap也开得越来越大,动辄十几G的Dump也不足为奇了...
  • JVM 内存分析往往由团队较资深同学来做,本系列帮助读者全面深度掌握 MAT 的使用方法。即使没有分析实践经验,也能快速成为内存分析高手! 本系列共计3篇: 《JVM 内存分析工具 MAT 的深度讲解与实践——入门篇...
  • Exlipse MAT 是一款强大的 Java 堆内存分析工具,我们可以通过该工具实现对 Java 堆内存的分析。 官网。实现查找内存泄漏以及查看内存消耗的情况。 MAT 使用 首先去官网下载对应的软件压缩包,下载地址。MAT 提供了...
  • 使用MAT分析内存泄露步骤

    千次阅读 2014-04-17 16:26:18
    项目优化过程中,总会遇到内存的一些问题,即便前期设计很优秀,可有可能在编码过程中留下内存泄露等问题,而一般查找内存...内存泄露的原因很多,如果是Android程序,内存一般分为native层和java层,用MAT主要是分析j
  • 2018年02月09日 15:03:43平凡...在java程序运行中发生OOM的时候,我们可以使用强大的内存分析工具MAT进行问题跟踪,但由于习惯了使用idea开发,再为了MAT下载个eclipse太麻烦,所以安装MAT独立版。 二、安装 ...
  • 1. 前言 生产环境中,尤其是吃大内存的JVM,一旦出现内存泄露等问题是非常容易引发OutofMemory的,如果没有一个好的工具提供给开发人员定位问题和分析问题,那么这将会是一场噩梦。目前JDK其实自带有一些内存泄露...
  • 如果分析的dump文件过大需要调整 在 MemoryAnalyzer.ini配置文件中修改 mat的启动参数 修改 xmx的启动堆内存即可 生成 dump文件 这里我们简单的生成一份dump文件 运行如下的程序 public static void main
  • Dump文件分析工具 - MAT图文解析

    千次阅读 2020-05-27 16:00:00
    在讲解Mat工具之前我们先来看下几个关于Dump/文件的问题 Dump文件是什么 Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中 我们拿到Dump文件有什么用的? 假如JVM因为内存溢出的...
  • mat分析oom

    千次阅读 2017-06-04 18:49:27
    前言 在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着... Memory Analyzer tool(MAT),来化解我们遇到的难题。如未说明,本文均使用Java 5.0 on Windows XP SP3环境。 为什么用
  • Mac os 下打开java内存分析工具 mat

    千次阅读 2018-10-15 13:25:25
    下载MAT后, 解压得到mat.app, 但是直接点击打开出错, 显示错误信息在文件 /Users/along/.eclipse/762171948_macosx_cocoa_x86_64/configuration/1539580415773.log中. 1. 打开错误信息 cat /Users/along/.eclipse/...
  • 1、使用MAT分析APP内存泄漏的步骤;
  • jvm dump分析工具mat

    千次阅读 2019-09-09 14:47:56
    Mat下载windows and linux 解压mat【linux版本】 unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip ## 修改MAT的内存大小, 注意这个大小要根据你dump文件大小来的,如果dump文件是5GB那么 这里最好配>...
  • Eclipse Memory Analyzer是一个非常好用的内存dump文件分析工具,我们可以利用它的Eclipse 插件轻松实现查看对象树、对象大小、生成报告,甚至自动化分析可能出现泄露的对象。关于MAT的使用介绍可以参考:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,383
精华内容 2,553
关键字:

mat分析windows