转:https://blog.csdn.net/zhou920786312/article/details/84195752

 

1安装

在Eclipse help -> Eclipse Marketplace下搜索Memory.找到图中的软件,默认安装就可以。

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

2测试:

1测试代码

public class Test1 {
  public static void main(String[] args) {
    List<Demo> list = new ArrayList<>();
    while (true) {
      list.add(new Demo());
    }
  }
}

public class Demo {

}

1虚拟机配置

在main方法上,右击鼠标 --> run as--> run configurations..  ,打开run configurations窗口

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

在run configurations窗口后,设置参数:-XX:+HeapDumpOnOutOfMemoryError -Xms20m -Xmx20m

  • -Xms20m -Xmx20m ##设置堆大小20m,并将最小和最大值设置相等,避免扩展
  • -XX:+HeapDumpOnOutOfMemoryError ##当前的内存堆转储快照,默认在项目的工作空间

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 打开windows任务管理器窗口,查看内存

运行结果

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

3使用Memory Analysis

1打开Memory Analysis

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

2打开dump文件 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

4分析

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

 

jvm内存溢出问题分析——Eclipse Memory Analysis的安装和使用

 

 

上图中,可以看到demo创建很多

参数

  • Shallow Heap浅堆:java对象占用的内存
  • Retained Heap深堆:java对象及对象引用的类占用的内存 ,jvm gc回收时释放的内存
  • Retained Heap深堆大于等于Shallow Heap浅堆

 

相关文章: