用Eclipse Memory Analyzer查找内存泄露

系统上线后,程序报出out of memory错误。一方面先加大程序运行的内存以解燃眉之急,另一方面希望能有个工具能查出内存泄露的原因。

 

    通过查阅资料发现了Memory Analyzer这个eclipse插件,下面讲下怎么用。

 

    首先,获取Heap dump文件。 

有三种方式:

    1、设置JVM参数,-XX:+HeapDumpOnOutOfMemoryError,在内存溢出的时候就会生成Heap dump文件

    2、使用jmap。(windows可以通过任务管理器查看pid)

Java5:jmap -heap:format=b <pid>;

Java6:jmap -dump:format=b,file=HeapDump.bin <pid>

    3、在本机运行java程序的时候,直接通过Memory Analyzer生成Heap dump文件。

 

 

    其次,安装Memory Analyzer。

现在已经出1.2.1了,下载地址http://www.eclipse.org/mat/downloads.php

也可以通过eclipse install new software ,地址http://download.eclipse.org/mat/1.2/update-site/

 

    安好后就可以开始看问题啦!

进入后,主页面如下图所示:

 

 

 

从上图可以看到它的大部分功能。
     1. Histogram可以列出内存中的对象,对象的个数以及大小。
     2. Dominator Tree可以列出那个线程,以及线程下面的那些对象占用的空间。
     3.Top consumers通过图形列出最大的object。
     4.Leak Suspects通过MA自动分析泄漏的原因。

这次重点是看Leak Suspects,点开后就能看到

 

 

 

点 Detial就能看到实际的一些情况,因为我的错误比较2,所以到这步就能看到原因,fix it!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值