标签: jvm
jvisualvm是jdk1.8自带的dump 文件分析工具,hprof文件是 jvm 有OutOfMemory异常出现的时候,JVM就会将当前的虚拟机的堆等信息放入hprof文件中,名字是大概java_pid加上进程号,比如:java_pid11656.hprof。
jvisualvmjvisualvm工具是jdk自带的分析工具,在jdk11 没有发现
对应参数配置分析hprof文件过程计算量比较大,也比较消耗内存,可以修改对应配置参数
# Options used by VisualVM launcher by default: # (can be overridden by explicit command line switches) # visualvm_default_options="-J-client -J-Xms124m -J-Xmx512m -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.d3d=false -J-Dnetbeans.keyring.no.master=true -J-Dplugin.manager.install.global=false" # for development purposes you may wish to append: -J-Dnetbeans.logger.console=true -J-ea分析类
选择类 按照实例数或者大小排序
可以定位到内存溢出的代码位置
代码:
package com.fancv.jvm; import java.util.linkedList; import java.util.List; public class MyOutofMemory { public static void main(String args[]) { Listmylist = new linkedList<>(); while (Boolean.TRUE) { mylist.add(new Demo()); } } } class Demo { public Demo() { } }
启动参数:
-XX:+HeapDumponOutOfMemoryError -Xmx200m -Xmx300m
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)