jvisualvm分析hprof文件
jvisualvm是jdk1.8自带的dump 文件分析工具,hprof文件是 jvm 有OutOfMemory异常出现的时候,JVM就会将当前的虚拟机的堆等信息放入hprof文件中,名字是大概java_pid加上进程号,比如:java_pid11656.hprof。jvisualvmjvisualvm工具是jdk自带的分析工具,在jdk11 没有发现对应参数配置分析hprof文件过程计算量比较大
·
jvisualvm是jdk1.8自带的dump 文件分析工具,hprof文件是 jvm 有OutOfMemory异常出现的时候,JVM就会将当前的虚拟机的堆等信息放入hprof文件中,名字是大概java_pid加上进程号,比如:java_pid11656.hprof。
jvisualvm
jvisualvm工具是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[]) {
List<Demo> mylist = new LinkedList<>();
while (Boolean.TRUE) {
mylist.add(new Demo());
}
}
}
class Demo {
public Demo() {
}
}
启动参数:
-XX:+HeapDumpOnOutOfMemoryError -Xmx200m -Xmx300m
更多推荐
已为社区贡献1条内容
所有评论(0)