
1.打开/tomcat_home/bin/catalina.bat文件
2.加上:set JAVA_OPTS=%JAVA_OPTS% -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump,这样当内存溢出是就会在对应路径下生成dump文件
运行程序打开jdk bin 文件夹下再带的 jvisualvm.exe
选择tomcat线程,打开实时监控页面可以看到对应的堆栈线程和装在类,内存的实时情况
运行程序打开jdk bin 文件夹下再带的 jconsole.exe,可以概览堆栈线程和装在类,内存的全部运行时间情况
下载安装mat,dump分析软件,安装后,点击file open 导入dump文件
打开后,灰色区域为可能发生内存溢出的区域,下带问题描述
选择Histogram,点击shallow列进行排序,找出实例最多的
右键实例最的选择list objects-with incoming references,可在根据正则表达式输入自己想查的类,搜索,后右键打开 path to gc root-exclude phantom/weak/soft etc. references 就可以查出 调用为回收的相关信息。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)