---------------------------------------------mac os版------------------------------------------------------
MAT是内存分析工具
1、下载
http://www.eclipse.org/mat/downloads.php
2、解压后得到
a
3、运行并指定需要分析的dump文件,得到eclipse试图

4. 核心报表 class histogram
check 是否有超大对象滞留

--------------------------------------------------------------------------------windows----------------------------------------------------------------------------
1、mat 下载地址 https://www.eclipse.org/mat/downloads.php(注意本地jdk是64的就下载64位),下载下来解压就以用,同上macos差不多。
2、 jvisualvm,是jdk自带的,本地的打开本地jdk安装路径 jvisualvm.exe,mac os也可以打开。


****************************************************************重点如下*************************************************************************************
1、场景概述:内存溢出情况,如何定位去分析(Exception in thread "main"java.lang.OutOfMemoryError: Java heap space)
2、配置你的工程jvm启动参数加入重要参数(-XX:+HeapDumpOnOutOfMemoryError),这个参数配置完成后,系统发生OutOfMemoryError发生时自动生成 Heap Dump 文件,
然后分析dump文件,Java内存使用情况时,往往是在OOM(OutOfMemoryError)发生时。
操作例子如下:
1)创建一个demo工程,加入HeapLeak类

2)然后配置你的vm options参数:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\opt\HeapLeak.hprof

开发环境,测试环境,预发布环境,生产环境(可以在jenkins配置,大家可能没有权限)

3)运行结果,当出现内存溢出时,会生成dump文件

4)jvisualvm分析文件(可以是.dump结尾的文件也可以是.hprof的文件),查看概要基本信息中会指出oom的异常问题,
会找到你内存溢出的主因,查看如下:


5)mat分析文件,图中指出区域发生内存溢出的区域,点击details可以查看具体oom

![]()
本文详细介绍如何使用MAT(Memory Analyzer Tool)分析Java应用程序的内存溢出问题,包括下载、配置及具体操作步骤,帮助开发者有效定位并解决OOM错误。
1661

被折叠的 条评论
为什么被折叠?



