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

使用jmap来生成堆转储快照相关推荐

  1. java 堆转储快照_捕获Java堆转储的7个选项

    java 堆转储快照 堆转储是诊断与内存相关的问题的重要工件,例如内存泄漏缓慢,垃圾回收问题和java.lang.OutOfMemoryError.它们也是优化内存消耗的重要工件. 有很棒的工具,例如 ...

  2. java 堆转储快照_Java堆转储:您可以完成任务吗?

    java 堆转储快照 如果您像我一样对Java性能充满热情,那么堆转储分析对您来说应该不是一个谜. 如果是这样,那么好消息是您将有机会增加您的Java故障排除技能和JVM知识. JVM现在已经发展到这 ...

  3. java 转储快照分析_分析Java核心转储

    java 转储快照分析 在本文中,我将向您展示如何调试Java核心文件,以查看导致JVM崩溃的原因. 我将使用在上一篇文章: 生成Java Core Dump中生成的核心文件. 您可以通过以下几种方法 ...

  4. 深入理解Java虚拟机——虚拟机堆转储快照分析工具(jhat)

    目录 一.虚拟机堆转储快照分析工具(jhat)的概述 二.实际工作中一般不直接使用jhat命令分析dump文件原因 三.使用jhat分析dump文件示例 一.虚拟机堆转储快照分析工具(jhat)的概述 ...

  5. java 内存溢出 jstack,Java——命令jps、jstat、jmap、jstack、jhat、jinfo

    JAVA_HOME/bin/ 目录下jdk提供了很多自带工具,下面以tomcat下的web项目为例.如果感觉输出内容太多可以使用 xxx | head -n 20 显示输出内容的头20行. jps j ...

  6. Java——命令jps、jstat、jmap、jstack、jhat、jinfo

    JAVA_HOME/bin/ 目录下jdk提供了很多自带工具,下面以tomcat下的web项目为例.如果感觉输出内容太多可以使用 xxx | head -n 20 显示输出内容的头20行. jps j ...

  7. Java虚拟机性能监控工具草览

    为什么80%的码农都做不了架构师?>>>    方法.套路.工具,都能提高生产力.做了一轮压测,顺道列列虚拟机的工具. 一. Java虚拟机有哪些性能工具 我们按操作方式分为两类,有 ...

  8. JDK自带JVM工具

    1 jdk 自带工具之jstat--虚拟机进程状况工具 使用方式 Usage: jstat -help|-optionsjstat -<option> [-t] [-h<lines& ...

  9. JDK 监控和故障处理工具总结

    文章目录 JDK 命令行工具 jps:查看所有 Java 进程 jstat: 监视虚拟机各种运行状态信息 jinfo: 实时地查看和调整虚拟机各项参数 jmap:生成堆转储快照 jhat: 分析 he ...

最新文章

  1. 系统管理工具top、glances、dstat比较
  2. 玩转OpenVswitch:简介
  3. Linux 创建指定大小空文件
  4. python 读取配置文件config_python中读取配置文件ConfigParser
  5. RabbitMQ Topic交换机(结果成功)
  6. 大页内存(HugePages)
  7. rxjs的一个例子:什么是rxjs的OperatorFunction?
  8. 基于LVS对LAMP做负载均衡集群
  9. matlab绘3d图
  10. SpringBoot 2.1.5(38)---热部署(devtools)配置操作
  11. 渗透测试攻击(二)——wireshark过滤数据包语法详解
  12. 代码行云流水..这位刚高中毕业的 UP 主,告诉我人的学习能力没有上限
  13. HEL上清除Oracle10g clusterware的失败安装
  14. 单招面试计算机专业技巧,单招面试技巧 单招好不好
  15. MySQL的字符集和校对规则,你都会了吗?
  16. XFtp - 显示隐藏的文件和文件夹
  17. React Native 程序部署至 iOS 应用商店之前需要的配置和如何生成 release 版本的 APK 包
  18. 数据库架构设计——数据库选型
  19. 海胆状金纳米颗粒,粒径:150-200nm|银包金纳米颗粒 粒径:5-200nm|碳包金纳米颗粒 粒径:可定制
  20. Android 手势识别向左,右,上,下,滑动的方向

热门文章

  1. 干掉勒索病毒的22岁程序员自曝黑历史:中学是电脑白痴
  2. loadrunner-2-9添加事务
  3. 看了些关于rem的知识点,在这做个自我总结归纳
  4. 《Linux内核设计与实现》读书笔记(2)--- 进程管理
  5. 实验十 团队作业6:团队项目系统设计改进与详细设计
  6. SQL Server-聚焦LEFT JOIN...IS NULL AND NOT EXISTS性能分析(十七)
  7. 【cocos2d-x从c++到js】08:JS脚本语言的优势与一些问题
  8. iTunes 安装ipa文件到iPhone上
  9. jquery 选择器之children与find
  10. [转]直接拿来用!最火的Android开源项目(一)