jmap命令简介

jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具。除此以外,jmap命令还可以查看finalize执行队列、Java堆和方法区的详细信息,比如空间使用率、当前使用的什么垃圾回收器、分代情况等等。

和jinfo命令一样,在Windows系统上使用还是有一些限制的。在没有dbgeng.dll的Windows系统中,必须安装用于Windows的调试工具才能使jinfo命令正常工作,PATH环境变量应该包含jvm.dll的位置。

jmap命令参数

命令语法:

jmap [options] pid

命令参数说明:

  • option:jmap命令的可选参数。如果没有指定这个参数,jinfo命令会显示Java虚拟机进程的内存映像信息,如下图:

  • pid:要打印配置信息的Java虚拟机的进程ID。

想要要获取运行的Java虚拟机进程的列表,可以使用ps命令(Linux系统中)或tasklist命令(Windows系统中),如果Java虚拟机进程没有在单独的docker实例中运行,可以使用jps命令。

option都有哪些参数呢?我们来看一下。

-heap

显示Java堆的如下信息:

  • 被指定的垃圾回收算法的信息,包括垃圾回收算法的名称和垃圾回收算法的详细信息。
  • 堆的配置信息,可能是由命令行选项指定,或者由Java虚拟机根据服务器配置选择的。
  • 堆的内存空间使用信息,包括分代情况,每个代的总容量、已使用内存、可使用内存。如果某一代被继续细分(例如,年轻代),则包含细分的空间的内存使用信息。

比如:

-histo[:live]

显示Java堆中对象的统计信息,包括:对象数量、占用内存大小(单位:字节)和类的完全限定名。比如:

要获得某个对象的大小,可以将其总大小除以该对象类型的数量。如果指定了live参数,则只计算活动的对象。比如:

-clstats

显示Java堆中元空间的类加载器的统计信息,包括:

class_loader:当Java虚拟机运行时,类加载器对象的地址
classes:已加载类的数量
bytes:该类加载器加载的所有类的元数据所占的字节数
parent_loader:父类加载器对象的地址,如果没有显示null
alive:是否存活的标识,表示类加载器对象是否将被垃圾回收。
type:该类加载器的类名。

比如:

-finalizerinfo

显示在F-Queue中等待Finalizer线程执行finalize方法的对象。比如:

-dump:[live,]format=b,file=

生成Java虚拟机的堆转储快照dump文件。具体说明如下:

  • live参数是可选的,如果指定,则只转储堆中的活动对象;如果没有指定,则转储堆中的所有对象。
  • format=b表示以hprof二进制格式转储Java堆的内存。
  • file=<filename>用于指定快照dump文件的文件名。

比如:

-F

强制模式。如果指定的pid没有响应,可以配合-dump-histo一起使用。此模式下,不支持live参数。比如:

-h 和 -help

显示jinfo命令的帮助信息。

最后,谢谢你这么帅,还给我点赞关注

Java的jmap命令使用详解相关推荐

  1. ​Java的jstack命令使用详解​

    jstack命令简介 jstack(Java Virtual Machine Stack Trace)是JDK提供的一个可以生成Java虚拟机当前时刻的线程快照信息的命令行工具.线程快照一般被称为th ...

  2. Java的jstack命令使用详解

    jstack命令简介 jstack(Java Virtual Machine Stack Trace)是JDK提供的一个可以生成Java虚拟机当前时刻的线程快照信息的命令行工具.线程快照一般被称为th ...

  3. java ext.dirs_关于-Djava.ext.dirs使用及JAVA 命令参数详解System.setProperty

    大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢? -classpath,命令格式:# java -classpath , ...

  4. java jstack使用_JAVA语言之JVM 中jstack命令使用详解

    本文主要向大家介绍了JAVA语言之JVM 中jstack命令使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. Java程序问题定位时线程栈信息是一个重要线索,如下: " ...

  5. java linux tracert_Linux系统中tracert命令使用详解

    Linux系统中Tracert命令用来显示数据包到达目标主机是所经过的路径.下面由学习啦小编为大家整理了linux系统中tracert命令使用详解,希望对大家有帮助! Linux系统中tracert命 ...

  6. linux java 创建目录结构_linux mkdir命令创建目录详解

    首页 > Linux教程 > 常用命令 > mkdir 创建目录 linux mkdir命令创建目录详解 linux中mkdir命令可以实现在指定位置创建文件夹或目录.要创建文件夹或 ...

  7. Java开发常见面试题详解(并发,JVM)

    预览 并发 问题 详解 请谈谈你对volatile的理解 link CAS你知道吗? link 原子类Atomiclnteger的ABA问题谈谈?原子更新引用知道吗? link 我们知道ArrayLi ...

  8. 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格

    本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...

  9. Java中的main()方法详解

    源文作者:leizhimin    源文链接:http://lavasoft.blog.51cto.com/62575/53263 源文作者版权申明: 版权声明:原创作品,允许转载,转载时请务必以超链 ...

最新文章

  1. python wsdl connection refused 111
  2. Tomcat web.xml配置参数详解
  3. 手动同步OCS的通讯簿
  4. 推送后更改git commit消息(假设没有人从远程拉出)
  5. Java 的自动装箱拆箱
  6. Mysql之事务与视图
  7. 郭天祥 十天搞定单片机 (1)基础知识和点亮发光二极管
  8. mysql的安全性实验报告_数据库安全性与完整性实验报告
  9. 银河麒麟linux找不到网卡,中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程-网卡设置...
  10. 在 python 中使用 Selenium 报错self.capabilities = response['value'] KeyError: 'value'的解决办法
  11. 2022软工-安庆集团-冲刺计划
  12. 电脑无法启动,风扇不转,电源灯一直闪烁
  13. 【日语】secret base
  14. cs231n-2022-assignment1#Q4:Two-Layer Neural Network(Part1)
  15. 变脸软件成犯罪帮凶​,上万个限用微信号被“复活”
  16. 一些免费的WebService的服务网站(转发)
  17. 自动驾驶仿真:VTD建立多个Fisheye模型
  18. magic4升级鸿蒙系统日期,magic4.0什么时候更新
  19. 【浅谈】数学与生活(一)
  20. 【机器学习】总结了九种机器学习集成分类算法(原理+代码)

热门文章

  1. js获取policy上传到阿里云
  2. 用卷积公式求概率密度时确定积分区间
  3. SAP_ABAP_视图
  4. 青岛二中2019男人8题初步题解
  5. html设置背景图片高度自适应屏幕,CSS设置背景图宽度100%,高度自适应
  6. uni-app 微信同声传译,实现AI语音功能(语音转文字,文字转语音,英汉互译
  7. 云桌面在学校的三种常见应用场景
  8. HackMyvm(二十七)Hommie,系列文章持续更新
  9. 2023最新驾考精简500题+技巧
  10. 中M22春C、Java入门练习-7.24