使用Eclipse Memory Analyzer进行堆转储文件分析 - 编程入门网
使用Eclipse Memory Analyzer进行堆转储文件分析时间:2011-09-04 IBM 仇璐 杨晓峰简介: Eclipse Memory Analyzer(MAT)是著名的跨平台集成开发环境 Eclipse Galileo 版本的 33 个组成项目中之一,它是一个功能丰富的 JAVA 堆 转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。本文主要介绍如 何安装配置 Memory Analyzer,并结合一个实例,介绍如何利用 MAT 来进行堆转 储文件分析,找到内存泄露的根源。 概述 对于大型 JAVA 应用程序来说,再精细的测试也难以堵住所有的漏洞,即便我 们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出 来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的部分运 行状态,并将其存储在堆转储 (Heap Dump) 文件中,从而为我们分析和诊断问题 提供了重要的依据。 通常内存泄露分析被认为是一件很有难度的工作,一般由团队中的资深人士进 行。不过,今天我们要介绍的 MAT(Eclipse Memory Analyzer)被认为是一个“ 傻瓜式“的堆转储文件分析工具,你只需要轻轻点击一下鼠标就可以生成一个专 业的分析报告。和其他内存泄露分析工具相比,MAT 的使用非常容易,基本可以 实现一键到位,即使是新手也能够很快上手使用。 MAT 的使用是如此容易,你是不是也很有兴趣来亲自感受下呢,那么第一步我 们先来安装 MAT。 准备环境和测试数据 我们使用的是 Eclipse Memory Analyzer V0.8,Sun JDK 6 安装 MAT 和其他插件的安装非常类似,MAT 支持两种安装方式,一种是“单机版“的, 也就是说用户不必安装 Eclipse IDE 环境,MAT 作为一个独立的 Eclipse RCP 应用运行;另一种是”集成版“的,也就是说 MAT 也可以作为 Eclipse IDE 的 一部分,和现有的开发平台集成。 集成版的安装需要借助 Update Manager。 如图 1 所示,首先通过 Help -> Software Updates... 启动软件更新管 理向导。 图 1. 安装插件第一步 使用Eclipse Memory Analyzer进行堆转储文件分析(2)时间:2011-09-04 IBM 仇璐 杨晓峰选择“Available Software“然后按如图 2 所示的方式添加 MAT 的更新地址 http://download.eclipse.org/technology/mat/0.8/update-site/。 图 2. 安装插件第二步 如图 3 所示,接下来选择你想要安装的 MAT 的功能点,需要注意的是 Memory Analyzer (Chart) 这个功能是一个可选的安装项目,它主要用来生成相 关的报表,不过如果需要用到这个功能,你还需要额外的安装 BIRT Chart Engine。 图 3. 安装插件第三步 插件安装完毕,你还需要重新启动 Eclipse 的工作平台。 比较而言,单机版的安装方式非常简单,用户只需要下载相应的安装包,然后 解压缩即可运行,这也是被普遍采用的一种安装方式。在下面的例子里,我们使 用的也是单机版的 MAT。具体的下载要求和地址可参见其产品下载页面: http://www.eclipse.org/mat/downloads.php。 另外,如果你需要用 MAT 来分析 IBM JVM 生成的 dump 文件的话,还需要额 外安装 IBM Diagnostic Tool Framework ,具体的下载和安装配置步骤请参见: http://www.ibm.com/developerworks/java/jdk/tools /dtfj.html 使用Eclipse Memory Analyzer进行堆转储文件分析(3)时间:2011-09-04 IBM 仇璐 杨晓峰配置环境参数 安装完成之后,为了更有效率的使用 MAT,我们还需要做一些配置工作。因为 通常而言,分析一个堆转储文件需要消耗很多的堆空间,为了保证分析的效率和 性能,在有条件的情况下,我们会建议分配给 MAT 尽可能多的内存资源。你可以 采用如下两种方式来分配内存更多的内存资源给 MAT。 一种是修改启动参数 MemoryAnal |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |