内存分析工具MAT分析内存溢出问题
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分析内存溢出问题相关推荐
- envi 文件 生成mat_JVM 内存分析工具 MAT 的深度讲解与实践——入门篇
1. MAT 工具简介 MAT(全名:Memory Analyzer Tool),是一款快速便捷且功能强大丰富的 JVM 堆内存离线分析工具.其通过展现 JVM 异常时所记录的运行时堆转储快照(Hea ...
- Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用
详细介绍了Java内存分析工具MAT(Memory Analyzer Tool)的常见使用方法,MAT可以帮助Java程序员快速进行内存分析,定位问题. MAT(Memory Analyzer Too ...
- 软文推荐:常用 Java 静态代码分析工具的分析与比较
http://www.uml.org.cn/j2ee/201107114.asp 常用 Java 静态代码分析工具的分析与比较 作者:赵卓 , 发布于2011-07-11 , IBM 简介: 本文首先 ...
- mac下 内存分析工具mat安装,使用mat分析:内存溢出、内存泄漏,结合jstat、jmap等命令的使用
分析前提: mat的安装详情:mac下安装 mat内存分析工具_MissNull的博客-CSDN博客_mac mat下载 使用Eclipse M ...
- 内存分析工具 MAT 详解
Mat的作用 MAT是Memory Analyzer tool的缩写,是一种快速,功能丰富的Java堆分析工具,能帮助你查找内存泄漏和减少内存消耗.很多情况下,我们需要处理测试提供的hprof文件,分 ...
- JVM 内存分析工具 - MAT
文章目录 1 简介 2 使用 2.1 准备 MAT 2.2 准备堆转储文件(Heap Dump) 2.3 分析堆转储文件 2.3.1 Histogram 2.3.2 Leak Suspects 2.3 ...
- 内存分析工具MAT的使用
原文链接:http://www.jianshu.com/p/d8e247b1e7b2 MAT简介 MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速. ...
- 内存分析工具MAT介绍
MAT(Memory Analyzer Tool)是一个基于Eclipse的内存分析工具,是一个快速.功能丰富的java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗. 官网地址:htt ...
- 内存分析工具 MAT 的使用
1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 : · heap 查看堆的分配情况 · ...
最新文章
- 哪位有方法把 dd/mm/yyyy的字符串 格式化成yyyy-mm-dd
- Solr 查询时候关键期 编码问题
- Tomcat无法shutdown进程问题解决办法
- MongoDB 分布式部署教程
- Harbour.Space Scholarship Contest 2021-2022 (open for everyone, rated, Div. 1 + Div. 2)
- 《学习OpenCV》课后习题解答(第三章)(仅供参考)
- Ubuntu 14.04.4官方默认更新源sources.list
- Mp4v2实现h264+aac打包成Mp4视频文件
- 【VRP】基于matlab遗传算法求解多中心的车辆路径规划问题【含Matlab源码 010期】
- 操作系统实验报告(四)文件系统
- java velocity 语法_Velocity语法
- 九大内置对象及四大类
- esp32实现万能红外遥控器 基于开源红外码库IREXT
- Office 解决WORD转PDF未显示书签。
- YOLOv报错Downloading https://ultralytics.com/assets/Arial.ttf to /root/.config/Ultralytics/Arial.ttf..
- python显示代码运行时间_python测量代码运行时间方法
- 货币银行学简答论述题
- 【Android -- 技术周刊】第 020 期
- mysql查询每行重复_MySQL查询返回重复的行
- 上周AI热点回顾:AI“模拟”出暗物质、AI挖掘毕加索秘密、CPU在大型神经网络超越V100 GPU...