在看深入JVM虚拟机一书(p50,2.4 实战OutOfMemoryError),有一个Java堆溢出的例子,使用到了Eclipse Memory Analyzer插件,由于自己现在使用的是MyEclipse,所以就需要在MyEclipse上添加插件。具体步骤如下:

1.先安装MAT插件

  1. Memory Analyzer 插件下载地址:http://www.eclipse.org/mat/downloads.php

  2. 点击进行下载

3.将下载的文件解压到MyEclipse的  dropins  文件夹下

4.创建和文件夹同名的.link文件,文件中的内容就写上对应的地址(地址使用\\ 或者 /)

5.重启MyEclipse,即可在window---->preferances中看到Memory Analyzer选项。

2.使用MAT工具进行分析实例

1.创建测试Java代码

/**
 * 

-verbose:gc -Xms20M -Xmx20M
   -XX:+HeapDumpOnOutOfMemoryError

 * @author y
 *
 */
public class Test {

    static class OOMObject{

    }

    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<OOMObject>();

        while(true){
            list.add(new OOMObject());
        }
    }

}

2.设置运行参数

解释一下参数的意思:

1.Java -verbose:gc 中参数-verbose:gc 表示输出虚拟机中GC的详细情况.

使用后输出如下:

[Full GC 168K->97K(1984K), 0.0253873 secs]

解读如下:

箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据1984K为堆内存的总容量,收集所需要的时间是0.0253873秒(这个时间在每次执行的时候会有所不同)

Note:GC会暂用CPU时间片,有可能造成应用程序在某个时刻极短的停顿.

2.-Xms :设置堆的最小值, –Xmx :设置堆的最大值

在这里将他们都设置为20M,可以避免堆自动扩展。

3.通过参数 –XX:+HeapDumpOnOutOfMemoryError 可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后分析。

3.运行程序,将会出现如下信息

这个时候就可以在工程的根目录下找到对应的文件了,然后我们就可以使用MAT工具Dump出来的堆转储快照进行分析。

3.进行分析

1.直接通过OpenFile将堆转储快照打开

2.具体分析参照如下链接:

http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/index.html?ca=drs-

http://essen.iteye.com/blog/1825314

http://tivan.iteye.com/blog/1487855

MyEclipse安装Eclipse Memory Analyzer插件,并进行错误文件分析流程的更多相关文章

  1. MyEclipse安装Eclipse Memory Analyzer插件以及使用例子

    一 :安装 1.Memory Analyzer 插件下载地址:http://www.eclipse.org/mat/downloads.php 2.将下载的文件解压到MyEclipse的  dropi ...

  2. 转:MyEclipse安装Eclipse Memory Analyzer插件,并进行错误文件分析流程

    转自 http://www.cnblogs.com/nb44c/p/5218880.html 1.先安装MAT插件 Memory Analyzer 插件下载地址:http://www.eclipse. ...

  3. eclipse安装Eclipse Memory Analyzer插件

    在Install New software中输入 http://archive.eclipse.org/mat/1.2/update-site/ 然后选择Memory Analyzer for Ecl ...

  4. 使用Eclipse Memory Analyzer 进行JAVA内存泄露分析

    一,安装 Eclipse Memory Analyzer 在Memory Analyzer的官网找到 update site的地址:

  5. Eclipse Memory Analyzer安装

    转载:http://www.jianshu.com/p/3b3c3a914724 1.下载地址:Eclipse Memory Analyzer Open Source Project   2.点击进入 ...

  6. Eclipse Memory Analyzer(MAT)使用

    https://user.qzone.qq.com/731573705/blog/1436389384 Eclipse Memory Analyzer(MAT)使用  一.OutOfMemoryErr ...

  7. 使用 Eclipse Memory Analyzer 进行堆转储文件分析

    Eclipse Memory Analyzer(MAT)是著名的跨平台集成开发环境 Eclipse Galileo 版本的 33 个组成项目中之一,它是一个功能丰富的 JAVA 堆转储文件分析工具,可 ...

  8. Java内存溢出分析方法(Eclipse Memory Analyzer 使用简单入门)

    转载至:http://outofmemory.cn/java/jvm/OutOfMemoryError-analysis 工具 安装Memory Analyse Tools(MAT) 工具, 可以直接 ...

  9. 转:Eclipse Memory Analyzer入门学习笔记

    原文地址:https://blog.csdn.net/cc907566076/article/details/79108782 Eclipse Memory Analyzer是一个快速而功能丰富的Ja ...

随机推荐

  1. cf B. Dima and Text Messages

    http://codeforces.com/contest/358/problem/B 先按照题意说的构造一个字符串s,然后与对比的字符串T比较,看看在字符串T中顺序查找有没有字符串S的所有字符,有输 ...

  2. #if defined 的意思?

    在读s3c2440a的test程序,其中option.h文件中有段语句为: #define LCD_N35 //#define LCD_L80 //#define LCD_T35 //#define ...

  3. JS打印、预览(IE,Chrome)

    IE下: 调用IE内置打印组件完成web打印方案.IE调用ActiveX实现打印. 重点: 注意: 1.CSS对打印的控制: .Noprint{display:none;} .PageNext{pag ...

  4. Cmake调用NSIS(一个可执行文件,其实就是一个编译器)编译NSIS脚本问题研究

    技术经理说,可以用Cmake当中的add_custom_command,add_custom_target命令来使用. 我初次研究了下,add_custom_command应该用官方文档中说明的第二种 ...

  5. mysql常用查询归纳

    一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组).order by(排序).limit(限制结果数) .where常用运算符: 比较运算符 > ...

  6. 免费 Bootstrap 管理后台模块下载

    在这文章中我们将分享17+个最好的免费 Bootstrap 管理模板.你可以免费下载这些Twitter bootstrap 框架来开发网站后台. SB Admin 2 SB Admin is a fr ...

  7. POJ2828---线段树与逆序数&&DUTOJ1210---逆序对构造排列

    来看这样一道问题:http://acm.dlut.edu.cn/problem.php?id=1210 题目大意:对于一个1-n的排列,a1,a2,a3,a4...an我们把满足i < j,ai ...

  8. EucOne调试

    ~/.ssh/id_rsa权限问题,造成ssh无法登陆问题解决;

  9. map循环遍历删除

    typedef map<string,int> MapFileList; int main() { MapFileList m_SingleList; m_SingleList.inser ...

  10. 使用教程 - BestSync同步软件 - SQL2008R2 数据库定时备份解决方案

    需求: 1.      某公司的管理软件,数据库为SQL2008R2.2.      将整个数据库作为一个文件,定时同步到FTP 服务器3.      需要有多个备份,每同步一次,都备份上次的文件到备 ...