使用mat即Memory Analyzer分析内存溢出

  • Post author:
  • Post category:其他


一、获取Dump文件在:tomcat安装目录bin下的catalina.sh文件夹的JAVA_OPTS中添加以下配置信息:/tmp/heapdump.hprof为dump文件目录

-XX:+HeapDumpOnOutOfMemoryError

-XX:HeapDumpPath=/tmp/heapdump.hprof

二、在官网下载mat官网地址:https://www.eclipse.org/mat

三、打开应用
在这里插入图片描述

如果提示:version 1.8 of the JVM is not suitable for this product. Version:11 or greater is required

将以下内容添加到MemoryAnalyzer.ini文件的头两行

-vm
C:\Program Files\Java\jdk-11.0.14\bin\javaw.exe

如果提示 An internal error occurred during: “Parsing heap dump from ‘C:\Users\ycw\heapdump.hprof’”.Java heap space

将MemoryAnalyzer.ini文件中的-Xmx进行调整改,完整的文件为

-startup
plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar
-vm
C:\Program Files\Java\jdk-11.0.14\bin\javaw.exe
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.400.v20211117-0650
-vmargs
-Xmx174080m

四、打开dump文件

五、选择Leak Suspects Report进行分析

![在这里插入图片描述](https://img-blog.csdnimg.cn/eec7aec44a1f447c9a65d42dc85eac5c.pn

六、查看内存消耗大的线程
在这里插入图片描述

七、点进去查看自己的代码,经查是此处数据量较大,且未做分页,当查询条件为空时数据量大导致内存溢出。

在这里插入图片描述



版权声明:本文为weixin_52472152原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。