MAT Memory Analyzer Tool 插件安装(图解)

简介:

MAT Memory Analyzer Tool 插件安装(图解)

原文地址

@author YHC

前段时间做了一个项目,Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

出现这个错误,所以需要查找原因,所以就用到这个工具,安装比较麻烦,贴出来和大家共享一下:

第一步:下载Eclipse MAT

下载地址:http://www.eclipse.org/mat/downloads.php

第二步:下载之后将压缩包解压,放置到Myeclipse 的\MyEclipse 9\dropins目录下

解压后会看见这些文件: 纠正下面一个错别字不是"写"是 "下"

第三步:按照下图,A,B,C的顺序进行对应的文件的创建

第四部:重启Myeclipse,打开Window->Perferences,你会看见这个项目:

 

简单的说一下使用(控制台的)如果是tomcat或者是别的服务器需要你去查如何配置JVM参数:

以下是一个会导致java.lang.OutOfMemoryError: Java heap space的程序代码:(very easy)

 

[java]  view plain copy print ?
  1. package org.lx.test; 
  2.  
  3. import java.util.Date; 
  4. import java.util.HashMap; 
  5. import java.util.Map; 
  6.  
  7. publicclass OutOfMemoryTest { 
  8.     publicstaticvoid main(String[] args) { 
  9.         Map<Integer,Date> map=new HashMap<Integer, Date>(); 
  10.         for (int i = 0; i < 600000000; i++) { 
  11.             map.put(i, new Date()); 
  12.         } 
  13.     } 
  14.      
  15.      
package org.lx.test;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class OutOfMemoryTest {
	public static void main(String[] args) {
		Map<Integer,Date> map=new HashMap<Integer, Date>();
		for (int i = 0; i < 600000000; i++) {
			map.put(i, new Date());
		}
	}
	
	
}

首先在运行之前有一些参数需要设置:

 

然后就到了参数设置的页面,按照A,B的顺序设置参数:(-XX:+HeapDumpOnOutOfMemoryError)避免写错误可以copy

运行错误的程序代码会看见以下结果:

那么这时候就生成了一个文件java_pid3708.hprof,这个文件 在你的项目的根目录下(myeclipse10)

那么接下来我们就打开这个文件进行分析如何打开见下图:(选中刚刚在项目根目录下生成的文件java_pid3708.hprof打开)

打开之后你会看见下图就OK了:

 

至于这其中问题如何查找请参考以下连接:

以下文章已经说的非常详细了:

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

2.使用mat进行dump文件分析

如有问题,请指正!谢谢!

 

二、下载MAT方法之二

在Eclipse中Help-> Install New Software, 输入如下地址

http://download.eclipse.org/mat/1.3/update-site/

如下图

然后点击Next,安装。

 



本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/p/3277914.html,如需转载请自行联系原作者

目录
相关文章
|
安全 Linux 网络安全
在Linux中传输文件文件夹的10个scp命令
本文为转载,原文链接为:https://mp.weixin.qq.com/s/IPFNwPiWioMPAix51hrXzg
|
Arthas 监控 Java
开源Java诊断工具Arthas:开篇之watch实战
还在为排查Java程序线上问题头痛吗,看我们用阿里开源的诊断神器 Arthas 来帮您
891 1
|
前端开发 关系型数据库 MySQL
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】
|
安全 关系型数据库 MySQL
Docker 进阶 发布自己的Docker镜像 将镜像上传到阿里云和Docker Hub
上传自己制作的docker镜像的方法,将docker镜像上传到Docker Hub,阿里云的两种方法,以及上传镜像时可能遇见的问题和解决办法,每一步的详解和上传镜像时的规范。
8306 0
Docker 进阶 发布自己的Docker镜像 将镜像上传到阿里云和Docker Hub
|
关系型数据库 MySQL 数据库
【Docker】手把手教你搭建好玩的docker项目合集
【Docker】手把手教你搭建好玩的docker项目合集
|
关系型数据库 MySQL 数据库
MySQL新增字段报错:ERROR 1118 -- Row size too large. The maximum row size for the used table type
MySQL新增字段报错:ERROR 1118 -- Row size too large. The maximum row size for the used table type
2007 0
|
6月前
|
监控 JavaScript 前端开发
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
MutationObserver 是一个非常强大的 API,提供了一种高效、灵活的方式来监听和响应 DOM 变化。它解决了传统 DOM 事件监听器的诸多局限性,通过异步、批量的方式处理 DOM 变化,大大提高了性能和效率。在实际开发中,合理使用 MutationObserver 可以帮助我们更好地控制 DOM 操作,提高代码的健壮性和可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
|
存储 监控 数据安全/隐私保护
Docker网络模式:深度理解与容器网络配置
Docker 的网络模式是容器化应用中一个关键而复杂的方面。本文将深入讨论 Docker 的网络模式,包括基本概念、常用网络模式以及高级网络配置,并通过更为丰富和实际的示例代码,帮助读者全面掌握如何理解和配置容器网络。
|
SQL 存储 测试技术
|
Java Maven
intellij idea如何查看项目maven依赖关系图
这篇文章介绍了如何在IntelliJ IDEA中查看项目的Maven依赖关系图,包括使用Maven工具栏和相关操作来展示和查看依赖细节。