jmap的用法(Java内存映像工具)

jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。如果不使用jmap命令,也可以在启动虚拟机时添加-XX:HeapDumpOnOutOfMemoryError参数,当虚拟机发生内存溢出异常之后就会自动生成堆转储快照文件;通过添加-XX:HeapDumpOnCtrlBreak参数,可以使用[Ctrl]+[Break]键让虚拟机生成堆转储快照文件。此外,在Linux系统下,通过发送kill -3命令发送进程退出信号“恐吓”一下虚拟机,也能拿到堆转储快照。

jmap命令不仅能获取堆转储快照,还可以查询finalize执行队列、Java堆和方法区的详细信息,如空间使用率、当前使用到时哪种垃圾收集器等。在Windows下,仅-dump和-histo选项可以使用,其余的在Linux/Solaris平台下才有效。

jmap的命令格式:

jmap  [option]  vmid

option选项的合法值和含义如下:

-dump  生成Java堆转储快照。格式为-dump:[live,]format=b,file=<filename>,其中live子参数说明是否只dump出存活的对象

-finalizerinfo  显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效。

-heap  显示Java堆详细信息,如使用哪种垃圾收集器、参数配置、分代状况等。只在Linux/Solaris平台下有效。

-histo  显示堆中对象统计信息,包括类、实例数量、合计容量。

-permstat  以ClassLoader为统计口径显示永久代内存状态。只在Linux/Solaris平台下有效。

-F  当虚拟机进程堆-dump选项没有响应时,可使用这个选项强制生成dump快照。只在Linux/Solaris平台下有效。

使用示例:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值