如何检测java程序内存泄漏

时间:2024-10-13 13:15:17

1、龅歧仲半打开/tomcat_home/bin/catalina.bat文件2.加上:set JAVA_OPTS=%JAVA_OPTS% -s髫潋啜缅erver -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump,这样当内存溢出是就会在对应路径下生成dump文件

如何检测java程序内存泄漏

2、运行程序打开jdk bin 文件夹下再带的jvisualvm.exe

如何检测java程序内存泄漏

3、选择tomcat线程,打开实时监控页面可以看到对应的堆栈线程和装在类,内存的实时情况

如何检测java程序内存泄漏

4、运行程序打开jdk bin 文件夹下再带的jconsole.exe,可以概览堆栈线程和装在类,内存的全部运行时间情况

如何检测java程序内存泄漏

5、下载安装mat,dump分析软件,安装后,点击file open 导入dump文件

如何检测java程序内存泄漏

6、打开后,灰色区域为可能发生内存溢出的区域,下带问题描述

如何检测java程序内存泄漏

7、选择Histogram,点击shallow列进行排序,找出实例最多的

如何检测java程序内存泄漏

8、右键实例最的选择list objects-with incoming references,可在根据正则表达式输入自己想查的类,搜索,后右键打开 path to gc root-exclude phantom/weak/soft etc. references 就可以查出 调用为回收的相关信息。

如何检测java程序内存泄漏
如何检测java程序内存泄漏
© 手抄报圈