本篇文章主要介绍了" Eclipse Memory Analyzer toolMAT使用详细说明",主要涉及到方面的内容,对于web前端感兴趣的同学可以参考一下:
在本文中,将介绍MAT如何根据heapdump分析泄漏根源。由于测试范例可能过于简单,很容易找出问题,但我期待借此举一反三。一开始不得不说说ClassLoade...
在Accumulated Objects视图中,retained heap占用最多的是hashMap和object数组,为啥它们会占用这么大的heap呢?这个时候需要分析hashMap和object数组中存放了一些什么对象?接着往下看,来到了Accumulated Objects by Class区域,顾名思义,这里能找到被聚集的对象实例的类名。org.rosenjiang.bo.Pilot类上头条了,被实例化了290,325次,再返回去看程序,我承认是故意这么干的。还有很多有用的报告可用来协助分析问题,只是本文中的例子太简单,也用不上。

为了更多的了解MAT的功能,再举一些例子(不提供对应的代码):
例子二:
通过MAT发现heap dump问题所在,就需要寻找导致内存泄漏的代码点。这时往往需要打开对象依赖关系树形视图,点击如图按钮即可。

这时会看到如下视图:

这个视图的右边大区域可以看到对象的依赖关系,选中某个对象以后可以在左边小窗口查看对象的一些属性。如果属性的值是一些内存地址你还可以点击工具栏的搜索按钮来搜索具体的对象信息。在进行具体分析的时候MAT只是起了帮助你进行分析的工具的功能,OOM问题分析没有固定方法和准则。只能发挥你敏锐的洞察力,结合源代码,对内存中的对象进行分析从而找到代码中的BUG.
例子三:
如何查看某一个对象占用的内存空间 1.按以下方式打开新窗口即可 ,如图:

2.输入类名(输入类的全名) ,如图:

参考资料:
http://www.blogjava.net/rosen/archive/2010/06/13/323522.html
http://seanhe.iteye.com/blog/898277
以上就介绍了 Eclipse Memory Analyzer toolMAT使用详细说明,包括了方面的内容,希望对web前端有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_4596246_6.html