Java 堆内存泄漏 通过生成dump定位

java.lang.OutOfMemoryError: Java heap space

问题出现的范围

  1. 已知会出现的区域
  2. 未知区域(本次定位

开发工具

IDEA 2020.02
heapanalyze(本次dump文件分析工具 下载地址
JDK自带jvisualvm(%JAVA_HOME%/bin/jvisualvm.exe jvisualvm工具详细介绍

设置JVM

  1. 堆内存大小
  2. Dump 生成路径/错误触发

IDEA设置虚拟机参数

-XX:HeapDumpPath=F://  
-XX:+HeapDumpOnOutOfMemoryError
-Xms60m
-Xmx60m

触发代码

import java.util.*;    
import java.lang.*;    
public class OOMTest {    
        public static void main(String[] args) {    
                List<String> list = new ArrayList<String>();    
                while(true){    
                        list.add(UUID.randomUUID().toString().intern());    
                }    
        }        
}

生成的文件名 :java_pid14688.hprof

heapanalyze工具使用

jvisualvm工具使用

生成的Dump文件太大 前面heapanalyze打开不了 用自带的分析可以
本工具也可以分析线程错误

posted @ 2020-08-27 16:21  苟&白  阅读(551)  评论(0)    收藏  举报