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;


操作页面如下:

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

posted @ 2020-11-07 10:55  劳瑞  阅读(610)  评论(0)    收藏  举报