MAT下载安装:

1.在eclipse中安装插件  2.下载独立MAT:下载地址:http://www.eclipse.org/mat/downloads.php

MAT分析的是hprof文件,hprof文件记录了JVM内存溢出时的堆信息,通过分析该文件我们可以分析溢出原因。

JVM参数配置:

-Xms10M -Xmx10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\gc.hprof

通过-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\gc.hprof 参数告诉JVM在内存溢出是记录堆信息,以及相应的hprof文件的存放位置。

-Xms10M -Xmx10M配置10M的目的是为了内存溢出测试。

测试代码:

public class GcTest {private static final int _1MB= 1024 * 1024;  //约1mpublic static void main(String[] args) {//总共约8m多,堆大小设置不超过8388608B即8.388608m就会内存溢出,但是需要整数,小于8M就会重现这个错误byte[] a1, a2, a3, a4;a1 = new byte[2 * _1MB];a2 = new byte[2 * _1MB];a3 = new byte[2 * _1MB];a4 = new byte[2 * _1MB];}
}

执行出错,内存溢出。相应的hprof文件保存在相应路径下。

通过MAT打开gc.hprof文件。

选择File-》Open heap dump,选择gc.hprof文件

在Leak Suspects中,我们可以看到(a) Problem Suspect 1,这就是我们要关注的内存溢出问题。它占用了6M内存。

查看details可以看到支配树上的累积对象

累计数根据类归类。

线程堆栈信息。

从以上结果中可以看到有3个大byte数组占用了很大的堆内存空间。

点击视图模式查看:

可以看到地址为0xffc394c0的线程占用了92.29%的对空间。

展开同样可以看到3个byte数组 。

通过以上数据进而分析内存溢出的原因,这也是解决性能问题的一种思路。

内存分析工具MAT分析内存溢出问题相关推荐

  1. envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇

    1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...

  2. Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用

    详细介绍了Java内存分析工具MAT(Memory Analyzer Tool)的常见使用方法,MAT可以帮助Java程序员快速进行内存分析,定位问题. MAT(Memory Analyzer Too ...

  3. 软文推荐:常用 Java 静态代码分析工具的分析与比较

    http://www.uml.org.cn/j2ee/201107114.asp 常用 Java 静态代码分析工具的分析与比较 作者:赵卓 , 发布于2011-07-11 , IBM 简介: 本文首先 ...

  4. mac下 内存分析工具mat安装,使用mat分析:内存溢出、内存泄漏,结合jstat、jmap等命令的使用

    分析前提: mat的安装详情:mac下安装 mat内存分析工具_MissNull的博客-CSDN博客_mac mat下载                             使用Eclipse M ...

  5. 内存分析工具 MAT 详解

    Mat的作用 MAT是Memory Analyzer tool的缩写,是一种快速,功能丰富的Java堆分析工具,能帮助你查找内存泄漏和减少内存消耗.很多情况下,我们需要处理测试提供的hprof文件,分 ...

  6. JVM 内存分析工具 - MAT

    文章目录 1 简介 2 使用 2.1 准备 MAT 2.2 准备堆转储文件(Heap Dump) 2.3 分析堆转储文件 2.3.1 Histogram 2.3.2 Leak Suspects 2.3 ...

  7. 内存分析工具MAT的使用

    原文链接:http://www.jianshu.com/p/d8e247b1e7b2 MAT简介 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速. ...

  8. 内存分析工具MAT介绍

    MAT(Memory Analyzer Tool)是一个基于Eclipse的内存分析工具,是一个快速.功能丰富的java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗. 官网地址:htt ...

  9. 内存分析工具 MAT 的使用

    1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 : ·    heap 查看堆的分配情况 ·     ...

最新文章

  1. 哪位有方法把 dd/mm/yyyy的字符串 格式化成yyyy-mm-dd
  2. Solr 查询时候关键期 编码问题
  3. Tomcat无法shutdown进程问题解决办法
  4. MongoDB 分布式部署教程
  5. Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)
  6. 《学习OpenCV》课后习题解答(第三章)(仅供参考)
  7. Ubuntu 14.04.4官方默认更新源sources.list
  8. Mp4v2实现h264+aac打包成Mp4视频文件
  9. 【VRP】基于matlab遗传算法求解多中心的车辆路径规划问题【含Matlab源码 010期】
  10. 操作系统实验报告(四)文件系统
  11. java velocity 语法_Velocity语法
  12. 九大内置对象及四大类
  13. esp32实现万能红外遥控器 基于开源红外码库IREXT
  14. Office 解决WORD转PDF未显示书签。
  15. YOLOv报错Downloading https://ultralytics.com/assets/Arial.ttf to /root/.config/Ultralytics/Arial.ttf..
  16. python显示代码运行时间_python测量代码运行时间方法
  17. 货币银行学简答论述题
  18. 【Android -- 技术周刊】第 020 期
  19. mysql查询每行重复_MySQL查询返回重复的行
  20. 上周AI热点回顾:AI“模拟”出暗物质、AI挖掘毕加索秘密、CPU在大型神经网络超越V100 GPU...

热门文章

  1. PETS渗透测试标准
  2. 计算机少年宫活动记录表,小学乡村少年宫计算机兴趣小组活动记录表.docx
  3. 什么软件可以识别图片上的文字?分享三个实用的识别软件
  4. MySQL(面试+原理)(1)--MySQL是如何存储数据的
  5. 基于JAVA房屋租赁及其管理系统
  6. 做销售,如何开发陌生市场?
  7. 基于GM(0,N)的时间序列预测R实现
  8. 【转】通信人必看之区别:S/N,C/N,Eb/N0,Ec/N0,Es/N0
  9. 威纶通触摸屏中通过流动块实现水流效果的具体方法演示
  10. pdf编辑软件哪个好 如何在pdf上修改