java项目内存溢出(OutOfMemoryError)问题定位分析
项目出现内存溢出,在虚拟机参数设定合理的情况下出现,一般都是出现了死循环或者对象无法被GC导致,抛出异常一般为:
1、“java.lang.OutOfMemoryError: GC overhead limit exceeded”;
2、“java.lang.OutOfMemoryError: Java heap space”
可通过下边方法来定位分析问题原因所在。
一、设置虚拟机参数,
-XX:+HeapDumpOnOutOfMemoryError

虚拟机增加该参数,当出现内存溢出时,会在项目对应的目录下生成一个.hprof结尾的文件
二、使用工具进行分析,工具有两种
a、jdk自带的软件jvisualvm.exe(此文件默认在java安装路径的bin目录下)打开.hprof结尾的文件,进行分析

b、下载MemoryAnalyzer插件,可以不依赖与eclipse独立使用,
下载地址:https://www.eclipse.org/mat/downloads.php
下载解压后,运行MemoryAnalyzer.exe;

操作页面如下:

三、根据工具分析具体是哪些对象占用了大量内存,从而做针对性的分析。

浙公网安备 33010602011771号