文档章节

Memory Analyzer安装

泡海椒
 泡海椒
发布于 2016/04/05 21:24
字数 371
阅读 37
收藏 0


package ch02;

import java.awt.List;
import java.lang.management.ManagementFactory;
import java.util.ArrayList;
/*
 * VM Args: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
 *
 *
 *
 * */
public class HeapOOM {
     static class OOMObject{};
    public static void main(String[] args) {
     ArrayList<OOMObject> list=new ArrayList<OOMObject>();
     while(true){
         list.add(new OOMObject());
     }

    }

}
控制台打印
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid5976.hprof ...
Exception in thread "main" Heap dump file created [33357309 bytes in 0.436 secs]
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2760)
    at java.util.Arrays.copyOf(Arrays.java:2734)
    at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
    at java.util.ArrayList.add(ArrayList.java:351)
    at ch02.HeapOOM.main(HeapOOM.java:18)
Memory Analyzer安装
可以在http://www.eclipse.org/mat/downloads.php选择合适的方式安装。安装完成后切换到Memory Analyzer视图。
也可以离线下载安装到C:\Program Files\eclipse\dropins
file-》open打开项目下的堆粗快照





Problem Suspect 1

The thread java.lang.Thread @ 0x264f0c40 main keeps local variables with total size 18,095,928 (99.40%) bytes.
The memory is accumulated in one instance of "java.lang.Object[]" loaded by "<system class loader>".

Keywords
java.lang.Object[]
Details »

MAT工具分析了heap dump该图深色区域被怀疑有内存泄漏,可以发现整个heap才17.4M内存,深色区域就占了绝大部分。接下来是一个简短的描述,
告诉我们main线程占用了大量内存,并且明确指出system class loader加载的"java.lang.Thread"实例有内存聚集,并建议用关键字
"java.lang.Thread"进行检查。所以,MAT通过简单的两句话就说明了问题所在,就算使用者没什么处理内存问题的经验。在下面还有一个"Details"链接,
在点开之前不妨考虑一个问题:为何对象实例会聚集在内存中,为何存活(而未被GC)?是的——Strong Ref,

 

© 著作权归作者所有

泡海椒
粉丝 11
博文 287
码字总数 289460
作品 0
成都
程序员
私信 提问
使用Eclipse内置的MAT插件分析dump文件时报错

下载下来一点dump文件很大,然后使用mat分析的时候mat本身报错 Out of Memory Error while Running the Memory Analyzer 这是因为eclipse配置的内存太小了导致的,网上查了下都是去改MemoryA...

V字仇杀
05/20
145
0
android程序跟踪内存泄露

在写代码时,很难防止bad code,特别是在调试别人的代码时,更难上加难。但是还好,我们有好用的跟踪内存泄露的工具。它们分别是DDMS中的Heap和Memory Analyzer(MAT)。 1、DDMS的Heap 2、Mem...

亭子happy
2014/04/02
117
0
利用Eclipse对MAT进行分析解决JAVA内存问题

我们在开发过程中往往会遇到 java.lang.OutOfMemoryError: Java heap space或者stackoverflow 这样或那样内存不够的错误。这种错误在开发人员对jvm里面的一些机制不清楚的情况下经常是摸不着...

古月楼
2013/10/18
6.2K
0
微软为 Windows 提供软件安全免费评估工具

微软发布Attack Surface Analyzer 1.0免费工具,可让企业及软件开发商评估新的应用是否有损Windows操作系统的安全性。 这个工具是由微软信赖运算安全小组所开发,该小组的Monty LaRue与Jimmi...

it224
2012/08/06
1K
8
JVM学习手册(X):查看堆内存使用情况以及排错

平时出现内存溢出以及死锁,一般处理方式都是查看日志,找到抛出异常的代码行,然后本地分析代码,但是这样对于线上排查十分糟糕,这段时间在研究JVM发现了几个比较好的工具和指令. 1.针对频繁GC和...

勤奋的蚂蚁
2018/07/21
16
0

没有更多内容

加载失败,请刷新页面

加载更多

006-Docker中导出单个或多个tar包

docker中导出单个镜像和多个镜像的tar包 docker save [images] > [name.tar] docker save [images] [images] > [name.tar]...

伟大源于勇敢的开始
今天
6
0
Kotlin基础语法学习

安装好安卓studio,以及插件支持Kotlin 就可以在创建项目的时候选择 Kotlin语言了。 https://www.jianshu.com/p/4ab13691d681 参考手册: https://www.runoob.com/kotlin/otlin-android-setu...

T型人才追梦者
今天
4
0
java实现简单计算器

1.概述 之前作者写过一篇文章,也是关于计算器的,用的是C++与Qt,链接在这里 这次用java的swing写的(这差距好像有点大,好吧是qt太强了). 先上图: 2.UI 总体布局使用流布局. (1)文本框 文本框就...

Blueeeeeee
今天
4
0
纯CSS实现DIV悬浮(固定位置)

纯CSS实现的DIV悬浮效果(固定位置),兼容常用的浏览器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗等。效果如下: 实现代码: <!DOCTYPE html> <html> <head> <meta ...

独钓渔
今天
6
0
OSChina 周二乱弹 —— 给我来个女菩萨

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @这次装个文艺青年吧 :#今日歌曲推荐#分享XXXTENTACION/Travis Barker的单曲《Pain = BESTFRIEND》: 《Pain = BESTFRIEND》- XXXTENTACION/...

小小编辑
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部