网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止 了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。
官网地址:https://www.eclipse.org/mat/
下载安装
下载地址:https://www.eclipse.org/mat/downloads.php
将下载得到的MemoryAnalyzer-1.8.0.20180604-win32.win32.x86_64.zip进行解压:
使用
Overview
Dump文件信息, 使用饼状图的方式来展示内存占用的信息
Details是文件信息详情, 包含了文件大小、字节码文件大小、对象文件大小、类加载器数量
Actions是常用的操作汇总, 与左上角的菜单功能相同
Histogram
Histogram汇总了使用到的类的对象数量以及堆占用空间
Dominator_Tree
Dominator_Tree汇总了堆内存空间中占比最大的对象, 按照空间大小排序, 我们可以通点击左边的箭头符号查看当前对象的引用状况, 最右侧为当前对象所占空间比例
查看对象以及它的依赖:
OQL
OQL是Object Query Language的简写,即对象查询语言, 语法与SQL类似, 点击下方的红色感叹号开始执行。
Thread_Overview
线程视图, 汇总了Dump文件中所有线程的信息, 按照线程所占用的空间进行排序
Leak Suspects
内存泄漏疑点, 这是Mat根据Dump文件的分析结果得到最有可能导致OOM的疑点, 也是我在使用Mat工具时第一个打开的工具,查看可能存在内存泄露的分析:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**