文章目录本文来说下如何使用使用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以及内存占用过高等问题。



