1、模拟oom发生代码

在这里插入图片描述

2、启动项目时指定参数

-XX:+HeapDumpOnOutOfMemoryError -Xmx1000M -Xms1000M

参数解释

  • -XX:+HeapDumpOnOutOfMemoryError:当程序出现OOM的时候就会在当前工程目录生成一个dump文件
  • -Xms 为JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation来指定这个比列。
  • -Xmx 为JVM运行时可申请的最大Heap值,默认值为物理内存的1/4但小于1G,默认当空余堆内存小于40%时,JVM会增大Heap到-Xmx指定的大小,可通过-XX:MinHeapFreeRation来指定这个比列。

3、启动项目,调用该接口

不久后就会抛出异常:

在这里插入图片描述
在这里插入图片描述
当前目录会生成一个快照文件:

在这里插入图片描述

4、使用JProfiler打开快照文件

在这里插入图片描述

4.1、工具栏翻译

在这里插入图片描述

4.2、点击最大对象并选定

  • 英文

在这里插入图片描述

  • 中文
    在这里插入图片描述

4.3、选择查看传入引用

在这里插入图片描述

可以看到调用树:

在这里插入图片描述

查看更多信息:

在这里插入图片描述

4.4、查看线程信息

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐