• Java内存分析工具MAT(Memory Analyzer Tool)安装使用实例


    整体思路:

    使用步骤:

    首先生成hprof文件并导入MAT:

    然后使用mat分析;

    一、Mac OS下MAT(Memory Analyzer Tool)安装与启动

    原文链接:https://blog.csdn.net/hanchao5272/article/details/93379202

    简述
    MAT(Memory Analyzer Tool),内存分析工具,是一款常用的JVM调优工具,对于分析内存泄漏(Memory Leak)有奇效。

    本文主要描述在Mac系统下,如何安装MAT及成功启动。

    环境

    操作系统:MacOS High Sierra 10.13.4
    MAT: 1.9.0.20190605
    下载地址:https://www.eclipse.org/mat/downloads.php
    版本:Mac OSX (Mac/Cocoa/x86_64)

    安装与启动
    下载完成,在Downloads目录下找到MemoryAnalyzer-1.9.0.20190605-macosx.cocoa.x86_64.zip。
    解压文件,得到mat.app目录。
    直接通过shell执行/Users/admin/Downloads/mat.app/Contents/MacOS/MemoryAnalyzer -data ./workspace即可启动mat。
    如果觉得直接把mat放在Downloads目录不妥,可以自行移动其所在位置,然后相应修改启动命令即可。
    ————————————————
    版权声明:本文为CSDN博主「hanchao5272」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/hanchao5272/article/details/93379202

    我自己本地的地址:mat.app在Documents 下面

    执行命令:

    /Users/dongpei.ma/Documents/mat.app/Contents/MacOS/MemoryAnalyzer -data  /tmp/workspace

    或者/Users/dongpei.ma/Documents/mat.app/Contents/MacOS/MemoryAnalyzer -data ./workspace

     

    二、MAT 工具使用介绍

    参考:https://www.jianshu.com/p/97251691af88

    MAT 页面

    用工具打开标准的.hprof 文件后界面如下: 

    2.1 Overview选项 

        当成功启动MAT后,通过菜单选项“File->Open heap dump...”打开指定的dump文件后,将会生成Overview选项,如下所示:

        在Overview选项中,以饼状图的形式列举出了程序内存消耗的一些基本信息,其中每一种不同颜色的饼块都代表了不同比例的内存消耗情况。

       

    2.2 我们主要分析Actions, 它包含了4个部分:每部分的含义如下:

    Histogram: 列举内存中对象存在的个数和大小

                    点击Histogram之后,会出现如下界面: 

                    

                       

    我们再来看一下右键菜单选项:

    1)List objects:

        with outgoing references :查看它所引用的对象

        with inncoming references :查看它被哪些对象引用

    2)Show objects by classs:

          和List objects选项类似,只不过列出的是类名。

        by outgoing references :查看它所引用的对象

        by inncoming references :查看它被哪些对象引用

         

      

    Dominator Tree: 该视图会以内存的百分比来列举所有实例对象,注意这个地方是对象而不是类类,这个视图是用来发现大内存对象的
    Top Consumers: 该视图会显示可能的内存泄漏点
    Duplicate Classes: 该视图显示重复的类等信息

    点击他们能得到不同的视图,下面来一一介绍:

     四、简单案例分析

     参考:https://www.jianshu.com/p/97251691af88

    使用步骤:

    首先生成hprof文件并导入MAT:

    然后使用mat分析;

    4.1生成hprof文件并导入MAT:

    4.2生成比较结果表

  • 相关阅读:
    web架构设计经验分享(转)
    家庭反对死一批,朋友同事嘲笑死一批,害怕失败死一批,徘徊等待死一批「没有时间」又死一批(转)
    java.lang.ClassCastException: java.lang.NoClassDefFoundError cannot be cast to java.lang.RuntimeException
    Android 代码混淆、第三方平台加固加密、渠道分发 完整教程(转)
    xcode armv6 armv7 armv7s arm64
    使用collectd与visage收集kvm虚拟机性能实时图形
    【OpenCV入门指南】第一篇 安装OpenCV
    《自己动手写CPU》写书评获赠书活动结果
    winzip15.0注冊码
    Atitit.ALT+TAB没反应车and 点击任务栏程序闪烁可是不能切换
  • 原文地址:https://www.cnblogs.com/shay/p/13177203.html
Copyright © 2020-2023  润新知