文章目录本文来说下如何使用使用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) { Listlist = 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以及内存占用过高等问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)