MAT内存分析工具-独立版安装

当Java程序出现OOM时,使用MAT工具进行问题排查。本文介绍了如何在Mac上安装MAT独立版,包括从下载到解决启动异常的问题。遇到的异常是由于平台元数据区无法写入,通过在终端中指定完整路径运行MemoryAnalyzer命令来解决。

一、背景

在java程序运行中发生OOM的时候,我们可以使用强大的内存分析工具MAT进行问题跟踪,但由于习惯了使用idea开发,再为了MAT下载个eclipse太麻烦,所以安装MAT独立版。

二、安装

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

选择自己系统相应的版本下载,下载完得到一个zip文件,笔者这里使用的是Mac OSX (Mac/Cocoa x86_64),解压后得到mat文件

如果这里双击打开没问题,则可以开始正常使用了;如果双击提示异常,那么继续往下看,提示如下 

Java代码 
  1. 按照提示路径进入日志文件,异常信息:  
  2. java.lang.IllegalStateException: The platform metadata area could not be   
  3. written: /private/var/folders/d_/9dsdb3jd0bbg2lq9kvhdlvz00000gn/T/AppTranslocation/13816EDC-675E-4D44-9337-C5A7658C046A/d/mat.app/Contents/MacOS/workspace/  
  4. .metadata.  By default the platform writes its content  
  5. under the current working directory when the platform is launched.  Use the&nbs
资源下载链接为: https://pan.quark.cn/s/9ce3e35e0f39 MAT(Memory Analyzer Tool)是由Eclipse基金会开发的一款强大的Java堆内存分析工具,主要用于诊断Java应用程序中的内存问题,例如内存泄漏、内存占用过高以及对象生命周期管理等。MAT的核心功能之一是能够分析hprof文件。hprof是Java虚拟机(JVM)生成的一种标准内存剖析数据格式,记录了JVM运行时的内存信息,包括对象分配、存活状态和引用关系等。通过解析hprof文件,MAT可以清晰地呈现内存消耗情况,帮助开发者定位可能导致问题的对象和类。 MAT的主要功能包括:一是对象分配和生存时间分析,通过“对象分配”视图显示哪些类创建了最多对象及其生存时间,从而识别内存泄漏源头。二是支配树功能,该视图展示了内存中对象的关系,其中主导对象是其他对象所依赖的,通过查看支配树可以找出占据大量内存的对象及其关联。三是大型对象集视图,它列出了占用内存最多对象集合,便于快速识别潜在问题。四是泄漏嫌疑人报告,MAT会自动生成一份报告,分析可能的内存泄漏原因,包括疑似泄漏的类、静态字段和单例等。五是碎片分析MAT能够区分对象自身的内存占用(Shallow Heap)和由该对象间接导致的内存占用(Retained Heap),帮助更好地理解内存消耗情况。六是对比分析,如果有多个内存快照,MAT可以进行对比,揭示内存状态变化,发现随时间推移出现的问题。七是复制和合并功能,允许用户复制或合并不同的hprof文件,便于在不同场景下进行比较和分析。八是哈希表视图,针对使用哈希表(如HashMap)导致的内存问题,MAT提供了专门的视图来分析其内容和内存占用。九是线程堆栈功能,MAT可以显示每个线程的堆栈信息,有助于定位与线程相关的内存问题。十是自定义查询功能,MAT支持类似SQL的
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值