jmap:Java内存映像工具

jmap:Java内存映像工具

jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。如 果不使用jmap命令,要想获取Java堆转储快照也还有一些比较“暴力”的手段:譬如在第2章中用过的- XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在内存溢出异常出现之后自动生成堆转储 快照文件,通过-XX:+HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成堆转储快 照文件,又或者在Linux系统下通过Kill-3命令发送进程退出信号“恐吓”一下虚拟机,也能顺利拿到堆转 储快照。jmap的作用并不仅仅是为了获取堆转储快照,它还可以查询finalize执行队列、Java堆和方法区的 详细信息,如空间使用率、当前用的是哪种收集器等。 和jinfo命令一样,jmap有部分功能在Windows平台下是受限的,除了生成堆转储快照的-dump选项 和用于查看每个类的实例、空间占用统计的-histo选项在所有操作系统中都可以使用之外,其余选项都 只能在Linux/Solaris中使用。

  • jmap命令格式:
jmap [ option ] vmid

在这里插入图片描述

  1. 使用jmap生成dump文件
    jmap -dump:format=b,file=eclipse.bin 3500
    生成文件如下:
    在这里插入图片描述
    文件位置
    在这里插入图片描述
    生成的文件可以使用jhat进行分析

jhat testdump.txt

在这里插入图片描述
输出Server is ready.之后,通过浏览器访问 http://localhost:7000/,结果如下
在这里插入图片描述

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

在这里插入图片描述

jmap -heap:显示堆详细信息

比如使用哪种回收器、参数配置,分代状况等

C:\Users\guangang>jmap -heap 5632
Attaching to process ID 5632, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.131-b11
 
using thread-local object allocation.
Parallel GC with 8 thread(s)
 
Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 6410993664 (6114.0MB)
   NewSize                  = 134217728 (128.0MB)
   MaxNewSize               = 2136997888 (2038.0MB)
   OldSize                  = 268435456 (256.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)
 
Heap Usage:
PS Young Generation
Eden Space:
   capacity = 324534272 (309.5MB)
   used     = 38090976 (36.326385498046875MB)
   free     = 286443296 (273.1736145019531MB)
   11.737119708577342% used
From Space:
   capacity = 17825792 (17.0MB)
   used     = 0 (0.0MB)
   free     = 17825792 (17.0MB)
   0.0% used
To Space:
   capacity = 20971520 (20.0MB)
   used     = 0 (0.0MB)
   free     = 20971520 (20.0MB)
   0.0% used
PS Old Generation
   capacity = 334495744 (319.0MB)
   used     = 30265144 (28.86309051513672MB)
   free     = 304230600 (290.1369094848633MB)
   9.04799075709615% used
 
27156 interned Strings occupying 2834160 bytes.

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

在这里插入图片描述

jmap -permstat:以ClassLoader为统计口径显示永久代内存状态

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值