Java的jmap命令的具体使用

 更新时间:2022年03月20日 10:26:38   作者:万猫学社  
jmap是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具,本文主要介绍了Java的jmap命令的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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命令的具体使用的文章就介绍到这了,更多相关Java jmap命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java通过snmp协议获取物理设备信息

    java通过snmp协议获取物理设备信息

    这篇文章主要介绍了java通过snmp协议获取物理设备信息,snmp中文含义是简单网络管理协议,可用完成对计算机、路由器和其他网络设备的远程管理和监视,本文我们是通过java程序来获取,需要的朋友可以参考下
    2023-07-07
  • 详解在Spring中如何自动创建代理

    详解在Spring中如何自动创建代理

    这篇文章主要介绍了详解在Spring中如何自动创建代理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Java 将Excel转为UOS的操作方法

    Java 将Excel转为UOS的操作方法

    以.uos为后缀的文件,表示Uniform Office Spreadsheet文件,是一种国产的办公文件格式,该格式以统一办公格式(UOF)创建,使用XML和压缩保存电子表格,这篇文章主要介绍了Java 将Excel转为UOS,需要的朋友可以参考下
    2022-09-09
  • mybatis中的动态sql问题

    mybatis中的动态sql问题

    这篇文章主要介绍了mybatis中的动态sql问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Java调用微信客服消息实现发货通知的方法详解

    Java调用微信客服消息实现发货通知的方法详解

    这篇文章主要介绍了Java调用微信客服消息实现发货通知的方法,结合实例形式详细分析了java针对微信接口调用的原理、调用方法与相关注意事项,需要的朋友可以参考下
    2017-08-08
  • Java对MySQL数据库进行连接、查询和修改操作方法

    Java对MySQL数据库进行连接、查询和修改操作方法

    这篇文章主要介绍了Java对MySQL数据库进行连接、查询和修改操作方法,需要的朋友可以参考下
    2017-07-07
  • dubbo之@Reference注解作用说明

    dubbo之@Reference注解作用说明

    这篇文章主要介绍了dubbo之@Reference注解作用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Java代码实现微信页面滚动防露底(核心代码)

    Java代码实现微信页面滚动防露底(核心代码)

    这篇文章主要介绍了Java代码实现微信页面滚动防露底的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • intellij idea tomcat热部署配置教程

    intellij idea tomcat热部署配置教程

    这篇文章主要介绍了intellij idea tomcat热部署配置教程图解,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • Java8深入学习系列(三)你可能忽略了的新特性

    Java8深入学习系列(三)你可能忽略了的新特性

    一提到Java 8就只能听到lambda,但这不过是其中的一个而已,Java 8还有许多新的特性,有一些功能强大的新类或者新的用法,还有一些功能则是早就应该加到Java里了,所以下面这篇文章主要给大家介绍了关于Java8中大家可能忽略了的一些新特性,需要的朋友可以参考下。
    2017-08-08

最新评论