eclipse配置和使用memory Analyse分析内存
1. 安装
在Eclipse help -> Eclipse Marketplace下搜索Memory:
图 1-1 搜索MAT插件
按照步骤安装完成重启即可。
2. 测试代码准备
测试代码
/**
*
* @description HeapOOM
* <p>Java堆异常测试</p>
* <code>VM Args: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError</code>
* <p>以上参数的含义是:限制Java堆大小为20MB,不可扩展</p>
* <p>通过此参数可以让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照</p>
* @author Yampery
* @date 2017年6月16日 下午11:42:46
*/
public class HeapOOM {
static class OOMObject { }
public static void main(String[] args) {
List<OOMObject> list = new ArrayList<OOMObject>();
while (true) {
list.add(new OOMObject());
} /// while end
} /// main
} ///~
/**
* 运行结果:
* java.lang.OutOfMemoryError: Java heap space
* Dumping heap to E:\job\java_pid4056.hprof ...
* Heap dump file created [28010445 bytes in 0.373 secs]
* Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
*/
3. Eclipse中的运行参数设置
-Dfile.encoding=UTF-8
-Xms20m -Xmx20m ##设置堆大小20m,并将最小和最大值设置相等,避免扩展
-XX:+HeapDumpOnOutOfMemoryError ##dump出当前的内存堆转储快照
-XX:HeapDumpPath=E:\job ##指定路径(转储文件还是挺大的)
-XX:SurvivorRatio=8 ## 存活比2:8
图2-1 eclipse运行参数设置
4.运行测试代码
通过上述可以看见堆转储快照文件是.hprof 文件。
5. 打开堆转储快照
打开MAT
图 3-1 设置界面显示MAT
图 3-2 打开或获取dump
打开dump文件
默认打开Leak Memory(泄漏)
图 3-3 dump文件
posted on 2018-04-25 05:51 zhulibin2012 阅读(894) 评论(0) 编辑 收藏 举报