jmap用法,jmap使用详解

jmap用法,jmap使用详解,Java的jmap命令的具体使用

Jmap是JDK提供的命令行工具,可以生成Java虚拟机的堆转储快照转储文件。本文主要介绍Java的jmap命令的具体使用,通过实例代码详细介绍,具有一定的参考价值。感兴趣的朋友可以参考一下。

目录

jmap命令简介jmap命令参数-heap-histo[:live]-clstats-finalizer info-dump:[live,] format=b,file=-f-h和-help

jmap命令简介

JMAP (Java虚拟机内存映射)是JDK提供的命令行工具,可以生成Java虚拟机的堆转储快照转储文件。此外,jmap命令还可以查看finalize执行队列、Java堆和方法区的详细信息,比如空间使用情况、当前使用了什么垃圾收集器、生成情况等。

与jinfo命令一样,它在Windows系统上的使用也有一些限制。在没有dbgeng.dll的Windows系统上,必须安装用于Windows的调试工具,以使jinfo命令正常工作,并且PATH环境变量应该包含jvm.dll的位置。

jmap命令参数

命令语法:

jmap[选项] pid

命令参数描述:

选项:选项:jmap命令的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队列中等待终结器线程执行Finalize方法的对象。例如:

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

生成Java虚拟机的堆转储快照转储文件。详情如下:

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

例如:

-F

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

-h 和 -help

显示jinfo命令的帮助信息。

关于Java jmap命令的具体用法,本文就讲到这里。有关Java jmap命令的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: