使用jmap来生成堆转储快照

使用jmap来生成堆转储快照,第1张

使用jmap来生成堆转储快照

本文来说下如何使用使用jmap来生成堆转储快照

文章目录
  • 概述
  • 常用命令
  • 测试程序
  • 本文小结


概述

命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。

jmap也是jdk自带的一个命令,在jdk中的位置如下所示


常用命令

jmap常用命令


测试程序

测试程序

package cn.wideth.buz.utils;

import java.util.ArrayList;
import java.util.List;

public class HeapOOM {

    public static class OOMObject {
    }

    public static void main(String[] args) {

        List list = new ArrayList<>();
        while (true) {
            list.add(new OOMObject());
        }
    }
}

如果只是想简单了解下当前jvm中的对象对内存占用的情况,直接使用jmap -histo命令即可

通过命令:jmap -dump:live,format=b,file=dump.hprof PID 会在当前目录下生成一个 dump.hrpof 文件,一个二进制格式不能直接打卡,需要借助VisualVM工具

使用VisualVM打开生成的dunp文件


本文小结

本文介绍了使用jmap来生成堆转储快照,可以来分析线上OOM以及内存占用过高等问题。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5078743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存