零度下载 最安全的值得信赖的绿色软件下载站! 分类导航 手机版
零度手机版二维码扫码浏览手机端页面

memory analyzer_java分析工具 v1.5.0 免费版

网友评分:10.0 软件星级:4星评价
  • 软件大小:57.8M
  • 软件语言:简体中文
  • 软件分类:编程其它
  • 软件授权:免费软件
  • 更新时间:2017/2/8
  • 软件类别:国产软件
  • 软件官网:http://www.05sun.com/
  • 应用平台:WinAll

软件介绍

一个好的编辑器或开发工具,能够极大提高我们的开发效率,memory analyzer是一个java监控分析工具,作为跨平台的开源工具,您不仅可以用它来分析内存问题,也可以用来监控整个 Java 应用程序的状态和行为。

特点介绍

通过读取应用程序运行时由 Java 运行时环境生成的转储文件快照,Memory Analyzer 使您能够分析那些调试代码可能无法发现的复杂问题。

memory analyzer第1张预览图

使用说明

一、准备工作 
分析较大的dump文件(根据我自己的经验2G以上的dump文件就需要使用以下介绍的方法,不然mat会出现oom)需要调整虚拟机参数 
找个64位的系统在MemoryAnalyzer.ini设置-Xmx2g 
如果是32位的xp可以使用下面的方法进行尝试:

安装jrockit 6.0的JDK

mat使用jrockit的jdk来启动

Java代码  memory analyzer第2张预览图

-vm  

D:/Program Files/Java/jrockit-R28.0.0-jre1.6.0_17/bin/jrockit/jvm.dll  

-vmargs  

-Xmx1700m  



二、开始使用MAT进行OOM分析 
第一步,启动mat ,选择File->Open Heap Dump 选择你的dump文件。下面开始等待,mat解析dump文件需要花一些时间,在解析的同时会在硬盘上写入一些解析结果文件,这样下次打开时速度会快很多。有时候mat在解析过程中可能会出现出错的情况,这个时候可以将那些临时文件删除以后重试第一步,如果你的rp够好的话重试也许会解析成功。 

第二步,查看内存泄漏分析报表。mat解析完成以后会出现如下图的提示: 
memory analyzer第3张预览图 
因为我们就是为了查找内存泄漏的问题,所以保持默认选项直接点“Finish”就可以。 
Mat会非常直观的展现内存泄漏的可疑点,类似下面的报表可以直接看到某个线程占用了大量的内存 
memory analyzer第4张预览图
问题的详细分析信息: 
memory analyzer第5张预览图

第三步,开始寻找导致内存泄漏的代码点。这时往往需要打开对象依赖关系树形视图,点击如图按钮即可。 
memory analyzer第6张预览图 
这时会看到如下视图 
memory analyzer第7张预览图
这个视图的左边大区域可以看到对象的依赖关系,选中某个对象以后可以在左边小窗口查看对象的一些属性。如果属性的值是一些内存地址你还可以点击工具栏的搜索按钮来搜索具体的对象信息。在进行具体分析的时候MAT只是起了帮助你进行分析的工具的功能,OOM问题分析没有固定方法和准则。只能发挥你敏锐的洞察力,结合源代码,对内存中的对象进行分析从而找到代码中的BUG. 

使用贴士: 
关于shallow size、retained size(摘自http://www.360doc.com/content/11/0830/16/4520139_144514377.shtml) 
Shallow size就是对象本身占用内存的大小,不包含对其他对象的引用,也就是对象头加成员变量(不是成员变量的值)的总和。在32位系统上,对象头占用8字节,int占用4字节,不管成员变量(对象或数组)是否引用了其他对象(实例)或者赋值为null它始终占用4字节。故此,对于String对象实例来说,它有三个int成员(3*4=12字节)、一个char[]成员(1*4=4字节)以及一个对象头(8字节),总共3*4 +1*4+8=24字节。根据这一原则,对String a=”rosen jiang”来说,实例a的shallow size也是24字节 

Retained size是该对象自己的shallow size,加上从该对象能直接或间接访问到对象的shallow size之和。换句话说,retained size是该对象被GC之后所能回收到内存的总和。为了更好的理解retained size,不妨看个例子。 

把内存中的对象看成下图中的节点,并且对象和对象之间互相引用。这里有一个特殊的节点GC Roots,正解!这就是reference chain的起点。 
memory analyzer第8张预览图memory analyzer第9张预览图 
从obj1入手,上图中蓝色节点代表仅仅只有通过obj1才能直接或间接访问的对象。因为可以通过GC Roots访问,所以左图的obj3不是蓝色节点;而在右图却是蓝色,因为它已经被包含在retained集合内。 
所以对于左图,obj1的retained size是obj1、obj2、obj4的shallow size总和;右图的retained size是obj1、obj2、obj3、obj4的shallow size总和。obj2的retained size可以通过相同的方式计算。 

软件截图

  • memory analyzer界面图1

最新评论

我要抢沙发

用户评论

(您的评论需要经过审核才能显示)0人参与,0条评论
140

本类热门

分类下载排行

零度软件 - 所有软件均来自网络如有版权问题请联系我们 - 蜀ICP备 05031544号
Copyright © 2004-2016 www.05sun.com online services. All rights reserved.

请简要描述您遇到的错误,我们将尽快予以修订