jvisualvm分析hprof文件

本文介绍如何使用JVisualVM工具分析由JVM在出现OutOfMemoryError时生成的HProf文件,通过实例展示了如何定位内存溢出问题,并提供了优化JVisualVM性能的配置建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值