应用介绍
软件特色:
1、探索对象图,包含入站与出站引用
2、计算从垃圾收集器根到有趣对象的路径
3、帮你快速找到内存浪费
功能介绍:
1、MemoryAnalyzer软件可以帮你进行发现或者分析调试的代码等无法进行修复的问题
2、MemoryAnalyzer软件支持分析内存问题
3、这款java分析工具支持监控整个 Java 应用程序的状态与行为
4、还可以进行读取,使您的应用程序这运行时可以支持让Java 运行时环境的生产
MemoryAnalyzer使用教程:
1、准备工作
分析较大的dump文件(根据我自己的经验2G以上的dump文件就需要使用以下介绍的方法,不然mat会出现oom)需要调整虚拟机参数
找个64位的系统在MemoryAnalyzer.ini设置-Xmx2g
如果是32位的xp可以使用下面的方法进行尝试:
安装jrockit 6.0的JDK
mat使用jrockit的jdk来启动
Java代码
-vm
D:/Program Files/Java/jrockit-R28.0.0-jre1.6.0_17/bin/jrockit/jvm.dll
-vmargs
-Xmx1700m
2、开始使用MAT进行OOM分析
(1)启动mat ,选择File->Open Heap Dump 选择你的dump文件。下面开始等待,mat解析dump文件需要花一些时间,在解析的同时会在硬盘上写入一些解析结果文件,这样下次打开时速度会快很多。有时候mat在解析过程中可能会出现出错的情况,这个时候可以将那些临时文件删除之后重试第一步,如果你的rp够好的话重试也许会解析成功。
(2)查看内存泄漏分析报表。mat解析完成之后会出现下图可供参考的提示:
因为我们就是为了查找内存泄漏的问题,因此保持默认选项直接点Finish就可以。
Mat会非常直观的显示内存泄漏的可疑点,类似下面的报表可以直接看到某个线程占用了N多的内存
1、开始寻找导致内存泄漏的代码点。这个时候平常需要打开对象依赖关系树形视图,点击下图可供参考按钮就OK了。
这个时候会看到如下视图
这个视图的左边大区域可以看到对象的依赖关系,选中某个对象之后可以在左边小窗口查看对象的一些属性
如果属性的值是一些内存地址你还可以点击工具栏的搜索按钮来搜索具体的对象信息。在进行具体分析时MAT只是起了帮你进行分析的工具的功能,OOM问题分析没有固定方法与准则。只能发挥你敏锐的洞察力,结合源代码,对内存中的对象进行分析从而找到代码中的BUG
本次为你带来的是1.5版本的MemoryAnalyzer软件,综上所述,该工具功能完善,易于操作,是一个实用性很强的java分析工具。