JDK 8_jmap命令使用

本文介绍如何使用jmap命令查看Java进程的内存使用情况,包括实例个数、占用内存大小及类名等详细信息,并展示了如何生成堆内存快照进行深入分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此命令可以用来查看内存信息。

实例个数以及占用内存大小

[work@16-11-118 qf-pms]$ jmap -histo 32417 > ./log.txt^C

打开log.txt,文件内容如下:

num     #instances         #bytes  class name
----------------------------------------------
   1:        474372      115308728  [C
   2:       1509012       84504672  java.util.concurrent.ConcurrentHashMap$ValueIterator
   3:         19723       69972688  [I
   4:        121514       40306952  [B
   5:        207259        8290360  java.util.HashMap$KeyIterator
   6:        258544        6205056  java.lang.String
   7:         45478        4048792  [Ljava.lang.Object;
   8:        113824        3642368  java.lang.StackTraceElement
   9:         71465        3555400  [Ljava.lang.String;
  10:         38626        3399088  java.lang.reflect.Method
  11:         56927        1821664  java.util.concurrent.locks.AbstractQueuedSynchronizer$Node
  12:         72434        1738416  java.lang.StringBuilder
  13:         49423        1581536  java.util.HashMap$Node
  14:         45757        1464224  java.io.FileDescriptor
  15:         14448        1221376  [Ljava.lang.StackTraceElement;
  16:         45432        1090368  [Ljava.net.InetSocketAddress;
  17:         33852        1083264  java.util.Hashtable$Entry
  18:         44342         896232  [Ljava.lang.Class;
  19:         18027         865296  java.nio.HeapByteBuffer
  20:         10058         772368  [S
  21:          6026         678488  java.lang.Class
  22:          9445         604480  java.text.DateFormatSymbols
  23:          5327         589264  [Ljava.util.HashMap$Node;
  24:         23914         573936  java.lang.StringBuffer
  25:         22117         530808  java.util.concurrent.CopyOnWriteArrayList$COWIterator
  26:         19712         473088  sun.misc.ProxyGenerator$ConstantPool$IndirectEntry
  27:         14389         460448  java.util.concurrent.ConcurrentHashMap$Node
  28:         18301         439224  java.util.ArrayList
  • num:序号
  • instances:实例数量
  • bytes:占用空间大小
  • class name:类名称

堆信息

[work@16-11-118 qf-pms]$ jmap -heap 32417
Attaching to process ID 32417, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.51-b03

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 2147483648 (2048.0MB)
   NewSize                  = 357564416 (341.0MB)
   MaxNewSize               = 715653120 (682.5MB)
   OldSize                  = 716177408 (683.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 268435456 (256.0MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 536870912 (512.0MB)
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 536870912 (512.0MB)
   used     = 351596720 (335.3087615966797MB)
   free     = 185274192 (176.6912384033203MB)
   65.4899924993515% used
From Space:
   capacity = 44564480 (42.5MB)
   used     = 21440176 (20.446945190429688MB)
   free     = 23124304 (22.053054809570312MB)
   48.11045927159927% used
To Space:
   capacity = 44564480 (42.5MB)
   used     = 0 (0.0MB)
   free     = 44564480 (42.5MB)
   0.0% used
PS Old Generation
   capacity = 716177408 (683.0MB)
   used     = 114704 (0.1093902587890625MB)
   free     = 716062704 (682.8906097412109MB)
   0.016016143307329794% used

14552 interned Strings occupying 1221080 bytes.

如果对堆内存有一些了解的话,应该能看的明白这些输出的意思。

即将垃圾回收对象个数

[work@16-11-118 qf-pms]$ jmap -finalizerinfo 32417
Attaching to process ID 32417, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.51-b03
Number of objects pending for finalization: 0

堆内存dump

[work@16-11-118 qf-pms]$ jmap -dump:format=b,file=./dmp 32417
Dumping heap to /opt/web/qf-pms/dmp ...
Heap dump file created

我们可以用jhat命令来查看此dump文件的内容

[work@16-11-118 qf-pms]$ jhat -J-Xmx500m dmp
Reading from dmp...
Dump file created Sat Jul 15 10:36:13 CST 2017
Snapshot read, resolving...
Resolving 3915212 objects...
Chasing references, expect 783 dots.......................
..........................................................
..........................................................
..........................................................
..................
Eliminating duplicate references..........................
..........................................................
..........................................................
..........................................................
...............
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

然后在浏览器中输入:http://localhost:7000来查看堆中的对象信息

 

 

 

 

 

 

 

转载于:https://my.oschina.net/LucasZhu/blog/1408137

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值