1 jmap(Memory Map for Java)作用
一个多功能的命令,它可以生成 java 程序的 dump 文件, 也可以查看堆内对象信息、查看 ClassLoader 的信息以及 finalizer 队列
2 命令格式
jmap [options]
参数解释:
第一个参数:options
- no option: 查看进程的内存映像信息,类似 Solaris pmap 命令。
- heap: 显示Java堆详细信息
- histo[:live]: 显示堆中对象的统计信息
- clstats:打印类加载器信息
- finalizerinfo: 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
- dump:生成堆转储快照
3 命令演示
代码如下:
package com.example.demo;
import java.io.IOException;
/*
jmap:
命令像信息
使用不带选项参数的jmap打印共享对象映射,将会打印目标虚拟机中加载的每个共享对象的起始地址、映射大小以及共享对象文件的路径全称
命令:jmap -heap pid
描述:显示Java堆详细信息
打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息
命令:jmap -histo:live pid
命令:jmap -histo pid
描述:显示堆中对象的统计信息
其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象
命令:jmap -clstats pid
描述:打印类加载器信息
-clstats是-permstat的替代方案,在JDK8之前,-permstat用来打印类加载器的数据
打印Java堆内存的永久保存区域的类加载器的智能统计信息。对于每个类加载器而言,它的名称、活跃度、地址、父类加载器、它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。
命令:jmap -finalizerinfo pid
描述:打印等待终结的对象信息
Number of objects pending for finalization:0 说明当前F-Queue队列中并没有等待Finalizer线程执行finalizer方法的对象。
命令:jmap -dump:live,format=b,file=jmap.bin pid
描述:生成堆转储快照dump文件
以二进制格式转储Java堆到指定filename的文件中。live子选项是可选的。如果指定了live子选项,堆中只有活动的对象会被转储。想要浏览heap dump,你可以使用jhat(Java堆分析工具)读取生成的文件。这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用, 线上系统慎用
*/
public class jmapdemo {
public static void main(String[] args) throws IOException {
jmapdemo jmapdemo1 = new jmapdemo();
System.out.println("jmap");
System.in.read();
}
}
运行后进入命令行工具输入命令。
(1)命令一
jmap pid
描述:查看进程的内存映像信息
使用不带选项参数的jmap打印共享对象映射,将会打印目标虚拟机中加载的每个共享对象的起始地址、映射大小以及共享对象文件的路径全称
如下:
H:\project\jvmtestdemo>jmap 28016
Attaching to process ID 28016, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.261-b12
0x000000005b830000 8624K C:\Program Files\Java\jdk1.8.0_261\jre\bin\server\jvm.dll
0x000000005f400000 52K D:\Program Files (x86)\360\360Safe\safemon\SafeWrapper.dll
0x00007ff7fddc0000 284K C:\Program Files\Java\jdk1.8.0_261\bin\java.exe
0x00007ff862220000 620K C:\Program Files\Java\jdk1.8.0_261\jre\bin\msvcp140.dll
0x00007ff87d6e0000 172K C:\Program Files\Java\jdk1.8.0_261\jre\bin\java.dll
0x00007ff87fd80000 112K C:\Program Files\Java\jdk1.8.0_261\jre\bin\net.dll
0x00007ff880190000 96K C:\Program Files\Java\jdk1.8.0_261\jre\bin\zip.dll
0x00007ff880500000 84K C:\Program Files\Java\jdk1.8.0_261\jre\bin\vcruntime140.dll
0x00007ff892be0000 104K D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.2\bin\breakgen64.dll
0x00007ff896ed0000 64K C:\Program Files\Java\jdk1.8.0_261\jre\bin\verify.dll
0x00007ff89d3d0000 36K C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x00007ff89f940000 200K C:\Program Files\Java\jdk1.8.0_261\jre\bin\instrument.dll
0x00007ff8a3fd0000 2664K C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.4355_none_60b8b9eb71f62e16\COMCTL32.dll
0x00007ff8a4720000 1036K D:\Program Files (x86)\360\360Safe\safemon\libzdtp64.dll
0x00007ff8a4f90000 156K C:\WINDOWS\SYSTEM32\WINMM.dll
0x00007ff8b2650000 72K C:\WINDOWS\SYSTEM32\kernel.appcore.dll
0x00007ff8b2850000 7796K C:\WINDOWS\SYSTEM32\windows.storage.dll
0x00007ff8b3f50000 424K C:\WINDOWS\system32\mswsock.dll
0x00007ff8b41f0000 184K C:\WINDOWS\SYSTEM32\Wldp.dll
0x00007ff8b4390000 40K C:\WINDOWS\SYSTEM32\VERSION.dll
0x00007ff8b4770000 144K C:\WINDOWS\SYSTEM32\profapi.dll
0x00007ff8b48f0000 1116K C:\WINDOWS\System32\gdi32full.dll
0x00007ff8b4a60000 3032K C:\WINDOWS\System32\KERNELBASE.dll
0x00007ff8b4dd0000 156K C:\WINDOWS\System32\bcrypt.dll
0x00007ff8b4e00000 136K C:\WINDOWS\System32\win32u.dll
0x00007ff8b4e30000 1024K C:\WINDOWS\System32\ucrtbase.dll
0x00007ff8b4f30000 628K C:\WINDOWS\System32\msvcp_win.dll
0x00007ff8b51c0000 756K C:\WINDOWS\System32\KERNEL32.DLL
0x00007ff8b5430000 1164K C:\WINDOWS\System32\RPCRT4.dll
0x00007ff8b55e0000 820K C:\WINDOWS\System32\OLEAUT32.dll
0x00007ff8b5830000 172K C:\WINDOWS\System32\GDI32.dll
0x00007ff8b5860000 32K C:\WINDOWS\System32\PSAPI.DLL
0x00007ff8b5870000 704K C:\WINDOWS\System32\ADVAPI32.dll
0x00007ff8b5a60000 7596K C:\WINDOWS\System32\SHELL32.dll
0x00007ff8b62c0000 1660K C:\WINDOWS\System32\USER32.dll
0x00007ff8b6460000 632K C:\WINDOWS\System32\msvcrt.dll
0x00007ff8b6b20000 692K C:\WINDOWS\System32\SHCORE.dll
0x00007ff8b6bd0000 428K C:\WINDOWS\System32\WS2_32.dll
0x00007ff8b6c40000 200K C:\WINDOWS\System32\IMM32.DLL
0x00007ff8b6c80000 3404K C:\WINDOWS\System32\combase.dll
0x00007ff8b7050000 640K C:\WINDOWS\System32\sechost.dll
0x00007ff8b70f0000 340K C:\WINDOWS\System32\SHLWAPI.dll
0x00007ff8b7190000 2016K C:\WINDOWS\SYSTEM32\ntdll.dll
(2)命令二
jmap -heap pid
描述:显示Java堆详细信息
打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息
如下:
H:\project\jvmtestdemo>jmap -heap 28016
Attaching to process ID 28016, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.261-b12
using thread-local object allocation.
Parallel GC with 10 thread(s)
Heap Configuration:
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 10697572352 (10202.0MB)
NewSize = 222822400 (212.5MB)
MaxNewSize = 3565682688 (3400.5MB)
OldSize = 446169088 (425.5MB)
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 = 167247872 (159.5MB)
used = 13379896 (12.760063171386719MB)
free = 153867976 (146.73993682861328MB)
8.00003960588509% used
From Space:
capacity = 27787264 (26.5MB)
used = 0 (0.0MB)
free = 27787264 (26.5MB)
0.0% used
To Space:
capacity = 27787264 (26.5MB)
used = 0 (0.0MB)
free = 27787264 (26.5MB)
0.0% used
PS Old Generation
capacity = 446169088 (425.5MB)
used = 0 (0.0MB)
free = 446169088 (425.5MB)
0.0% used
3185 interned Strings occupying 261152 bytes.
(3)命令三
jmap -histo:live pid
描述:显示堆中对象的统计信息
其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象
如下:
H:\project\jvmtestdemo>jmap -histo:live 28016
num #instances #bytes class name
----------------------------------------------
1: 4586 439440 [C
2: 420 135856 [B
3: 4437 106488 java.lang.String
4: 706 80896 java.lang.Class
5: 634 41568 [Ljava.lang.Object;
6: 791 31640 java.util.TreeMap$Entry
7: 629 25160 java.util.LinkedHashMap$Entry
8: 425 19040 [Ljava.lang.String;
9: 373 11936 java.util.HashMap$Node
10: 24 8640 [Ljava.util.HashMap$Node;
11: 113 8136 java.lang.reflect.Field
12: 132 7664 [I
13: 87 5568 java.net.URL
14: 110 4400 java.lang.ref.SoftReference
15: 256 4096 java.lang.Integer
16: 121 3872 java.util.Hashtable$Entry
17: 107 3424 java.util.concurrent.ConcurrentHashMap$Node
18: 8 3008 java.lang.Thread
19: 42 2352 sun.misc.URLClassPath$JarLoader
20: 26 2080 java.lang.reflect.Constructor
21: 15 1968 [Ljava.util.concurrent.ConcurrentHashMap$Node;
22: 39 1872 sun.util.locale.LocaleObjectCache$CacheEntry
23: 43 1720 java.lang.ref.Finalizer
24: 34 1632 java.util.HashMap
25: 1 1568 [[B
26: 93 1488 java.lang.Object
27: 37 1480 java.io.ObjectStreamField
28: 26 1456 java.lang.Class$ReflectionData
29: 20 1280 java.util.concurrent.ConcurrentHashMap
30: 15 1200 [Ljava.util.WeakHashMap$Entry;
31: 9 1184 [Ljava.util.Hashtable$Entry;
32: 2 1064 [Ljava.lang.invoke.MethodHandle;
33: 1 1040 [Ljava.lang.Integer;
34: 1 1040 [[C
35: 41 984 java.io.ExpiringCache$Entry
36: 15 840 sun.nio.cs.UTF_8$Encoder
37: 12 768 java.util.jar.JarFile
38: 19 760 sun.util.locale.BaseLocale$Key
39: 15 720 java.util.WeakHashMap
40: 22 704 java.lang.ref.ReferenceQueue
41: 7 672 java.util.jar.JarFile$JarFileEntry
42: 12 672 java.util.zip.ZipFile$ZipFileInputStream
43: 11 648 [Ljava.lang.reflect.Field;
44: 8 640 [S
45: 19 608 java.io.File
46: 19 608 java.util.Locale
47: 19 608 sun.util.locale.BaseLocale
48: 13 520 java.security.AccessControlContext
49: 21 504 java.util.jar.Attributes$Name
50: 19 456 java.util.Locale$LocaleKey
51: 18 432 sun.misc.MetaIndex
52: 10 400 java.io.FileDescriptor
53: 10 400 sun.nio.cs.UTF_8$Decoder
54: 13 392 [Ljava.io.ObjectStreamField;
55: 1 384 com.intellij.rt.execution.application.AppMainV2$1
56: 1 384 java.lang.ref.Finalizer$FinalizerThread
57: 24 384 java.lang.ref.ReferenceQueue$Lock
58: 6 384 java.nio.DirectByteBuffer
59: 12 384 java.util.zip.ZipCoder
60: 1 376 java.lang.ref.Reference$ReferenceHandler
61: 18 352 [Ljava.lang.Class;
62: 6 336 java.nio.DirectLongBufferU
63: 10 320 java.lang.OutOfMemoryError
64: 3 312 [D
65: 13 312 [Ljava.lang.reflect.Constructor;
66: 13 312 sun.reflect.NativeConstructorAccessorImpl
67: 12 288 java.util.ArrayDeque
68: 3 264 java.lang.reflect.Method
69: 11 264 java.net.StandardSocketOptions$StdSocketOption
70: 11 264 java.util.ArrayList
71: 8 256 java.util.Vector
72: 3 240 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
73: 5 240 java.util.Hashtable
74: 6 240 java.util.WeakHashMap$Entry
75: 7 224 java.lang.ThreadLocal$ThreadLocalMap$Entry
76: 4 224 java.util.LinkedHashMap
77: 4 224 sun.util.calendar.ZoneInfo
78: 9 216 java.util.LinkedList$Node
79: 13 208 sun.reflect.DelegatingConstructorAccessorImpl
80: 5 200 java.security.ProtectionDomain
81: 6 192 java.io.FileInputStream
82: 4 192 java.util.Properties
83: 4 192 java.util.TreeMap
84: 2 160 [[Ljava.lang.String;
85: 4 160 java.lang.ClassLoader$NativeLibrary
86: 5 160 java.security.CodeSource
87: 5 160 java.util.LinkedList
88: 5 160 sun.util.locale.provider.LocaleProviderAdapter$Type
89: 3 144 java.nio.HeapByteBuffer
90: 6 144 sun.misc.PerfCounter
91: 3 144 sun.misc.URLClassPath
92: 2 128 java.io.ExpiringCache$1
93: 4 128 java.util.Stack
94: 2 128 sun.nio.cs.ext.DoubleByte$Encoder
95: 1 120 java.net.SocksSocketImpl
96: 5 120 java.util.Collections$UnmodifiableRandomAccessList
97: 5 120 sun.misc.FloatingDecimal$PreparedASCIIToBinaryBuffer
98: 2 112 java.lang.Package
99: 7 112 java.util.HashSet
100: 2 112 java.util.ResourceBundle$CacheKey
101: 2 112 java.util.zip.ZipFile$ZipFileInflaterInputStream
102: 2 112 sun.nio.cs.ext.DoubleByte$Decoder
103: 3 96 java.io.FileOutputStream
104: 4 96 java.lang.RuntimePermission
105: 3 96 java.lang.StringCoding$StringEncoder
106: 2 96 java.lang.ThreadGroup
107: 6 96 java.lang.ThreadLocal
108: 1 96 java.net.DualStackPlainSocketImpl
109: 2 96 java.util.ResourceBundle$BundleReference
110: 2 96 java.util.zip.Inflater
111: 4 96 jdk.net.ExtendedSocketOptions$ExtSocketOption
112: 1 96 sun.misc.Launcher$AppClassLoader
113: 3 96 sun.net.spi.DefaultProxySelector$NonProxyInfo
114: 2 96 sun.nio.cs.StreamEncoder
115: 1 88 sun.misc.Launcher$ExtClassLoader
116: 5 80 [Ljava.security.Principal;
117: 2 80 java.io.BufferedWriter
118: 2 80 java.io.ExpiringCache
119: 5 80 java.security.ProtectionDomain$Key
120: 2 80 sun.misc.FloatingDecimal$BinaryToASCIIBuffer
121: 3 72 java.lang.ThreadLocal$ThreadLocalMap
122: 3 72 java.net.Proxy$Type
123: 3 72 java.util.Arrays$ArrayList
124: 1 72 java.util.ResourceBundle$RBClassLoader
125: 3 72 java.util.concurrent.atomic.AtomicLong
126: 3 72 sun.misc.FloatingDecimal$ExceptionalBinaryToASCIIBuffer
127: 1 72 sun.util.locale.provider.JRELocaleProviderAdapter
128: 1 64 [F
129: 2 64 [Ljava.lang.Thread;
130: 2 64 java.io.FilePermission
131: 2 64 java.io.PrintStream
132: 2 64 java.lang.ClassValue$Entry
133: 2 64 java.lang.StringCoding$StringDecoder
134: 2 64 java.lang.VirtualMachineError
135: 2 64 java.lang.ref.ReferenceQueue$Null
136: 2 64 java.lang.ref.WeakReference
137: 2 64 java.security.BasicPermissionCollection
138: 2 64 java.security.Permissions
139: 2 64 java.util.ResourceBundle$LoaderReference
140: 1 48 [J
141: 2 48 [Ljava.lang.reflect.Method;
142: 2 48 java.io.BufferedOutputStream
143: 1 48 java.io.BufferedReader
144: 2 48 java.io.File$PathStatus
145: 2 48 java.io.FilePermissionCollection
146: 2 48 java.io.OutputStreamWriter
147: 2 48 java.net.InetAddress$Cache
148: 2 48 java.net.InetAddress$Cache$Type
149: 1 48 java.net.SocketInputStream
150: 1 48 java.nio.HeapCharBuffer
151: 2 48 java.nio.charset.CoderResult
152: 3 48 java.nio.charset.CodingErrorAction
153: 3 48 java.util.Collections$UnmodifiableSet
154: 3 48 java.util.HashMap$KeySet
155: 2 48 java.util.zip.ZStreamRef
156: 2 48 sun.misc.NativeSignalHandler
157: 2 48 sun.misc.Signal
158: 3 48 sun.net.www.protocol.jar.Handler
159: 1 48 sun.nio.cs.StreamDecoder
160: 1 48 sun.nio.cs.US_ASCII$Decoder
161: 1 48 sun.util.resources.TimeZoneNames
162: 1 48 sun.util.resources.en.TimeZoneNames_en
163: 1 40 [Lsun.util.locale.provider.LocaleProviderAdapter$Type;
164: 1 40 java.io.BufferedInputStream
165: 1 40 java.util.ResourceBundle$1
166: 1 40 sun.nio.cs.StandardCharsets$Aliases
167: 1 40 sun.nio.cs.StandardCharsets$Cache
168: 1 40 sun.nio.cs.StandardCharsets$Classes
169: 1 40 sun.nio.cs.ext.ExtendedCharsets
170: 1 32 [Ljava.lang.OutOfMemoryError;
171: 2 32 [Ljava.lang.StackTraceElement;
172: 1 32 [Ljava.lang.ThreadGroup;
173: 1 32 [Ljava.net.Proxy$Type;
174: 1 32 java.io.WinNTFileSystem
175: 1 32 java.lang.ArithmeticException
176: 2 32 java.lang.Boolean
177: 1 32 java.lang.NullPointerException
178: 1 32 java.net.InetAddress$InetAddressHolder
179: 1 32 java.net.Socket
180: 2 32 java.nio.ByteOrder
181: 2 32 java.util.LinkedHashMap$LinkedKeySet
182: 2 32 java.util.concurrent.atomic.AtomicInteger
183: 1 32 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
184: 1 32 jdk.net.ExtendedSocketOptions$1
185: 1 32 sun.instrument.InstrumentationImpl
186: 1 32 sun.nio.cs.StandardCharsets
187: 1 32 sun.util.locale.provider.LocaleResources
188: 1 32 sun.util.locale.provider.LocaleServiceProviderPool
189: 1 24 [Ljava.io.File$PathStatus;
190: 1 24 [Ljava.lang.ClassValue$Entry;
191: 1 24 [Ljava.net.InetAddress$Cache$Type;
192: 1 24 [Ljava.security.ProtectionDomain;
193: 1 24 [Lsun.launcher.LauncherHelper;
194: 1 24 java.io.InputStreamReader
195: 1 24 java.lang.ClassValue$Version
196: 1 24 java.lang.StringBuilder
197: 1 24 java.lang.invoke.MethodHandleImpl$4
198: 1 24 java.lang.reflect.ReflectPermission
199: 1 24 java.net.Inet4Address
200: 1 24 java.net.Inet6AddressImpl
201: 1 24 java.net.Proxy
202: 1 24 java.util.BitSet
203: 1 24 java.util.Collections$EmptyMap
204: 1 24 java.util.Collections$SetFromMap
205: 1 24 java.util.Collections$SynchronizedSet
206: 1 24 java.util.Locale$Cache
207: 1 24 java.util.ResourceBundle$Control$CandidateListCache
208: 1 24 java.util.jar.Manifest
209: 1 24 sun.instrument.TransformerManager
210: 1 24 sun.launcher.LauncherHelper
211: 1 24 sun.misc.JarIndex
212: 1 24 sun.misc.URLClassPath$FileLoader
213: 1 24 sun.nio.cs.ISO_8859_1
214: 1 24 sun.nio.cs.ThreadLocalCoders$1
215: 1 24 sun.nio.cs.ThreadLocalCoders$2
216: 1 24 sun.nio.cs.US_ASCII
217: 1 24 sun.nio.cs.UTF_16
218: 1 24 sun.nio.cs.UTF_16BE
219: 1 24 sun.nio.cs.UTF_16LE
220: 1 24 sun.nio.cs.UTF_8
221: 1 24 sun.nio.cs.ext.GBK
222: 1 24 sun.reflect.NativeMethodAccessorImpl
223: 1 24 sun.util.locale.BaseLocale$Cache
224: 1 24 sun.util.locale.provider.TimeZoneNameProviderImpl
225: 1 16 [Ljava.lang.Throwable;
226: 1 16 [Ljava.security.cert.Certificate;
227: 1 16 [Lsun.instrument.TransformerManager$TransformerInfo;
228: 1 16 com.example.demo.jmapdemo
229: 1 16 java.io.FileDescriptor$1
230: 1 16 java.lang.CharacterDataLatin1
231: 1 16 java.lang.ClassValue$Identity
232: 1 16 java.lang.Runtime
233: 1 16 java.lang.String$CaseInsensitiveComparator
234: 1 16 java.lang.System$2
235: 1 16 java.lang.Terminator$1
236: 1 16 java.lang.invoke.MemberName$Factory
237: 1 16 java.lang.invoke.MethodHandleImpl$2
238: 1 16 java.lang.invoke.MethodHandleImpl$3
239: 1 16 java.lang.ref.Reference$1
240: 1 16 java.lang.ref.Reference$Lock
241: 1 16 java.lang.reflect.ReflectAccess
242: 1 16 java.net.InetAddress$2
243: 1 16 java.net.URLClassLoader$7
244: 1 16 java.nio.Bits$1
245: 1 16 java.nio.charset.CoderResult$1
246: 1 16 java.nio.charset.CoderResult$2
247: 1 16 java.security.ProtectionDomain$2
248: 1 16 java.security.ProtectionDomain$JavaSecurityAccessImpl
249: 1 16 java.util.Collections$EmptyIterator
250: 1 16 java.util.Collections$EmptyList
251: 1 16 java.util.Collections$EmptySet
252: 1 16 java.util.HashMap$EntrySet
253: 1 16 java.util.Hashtable$EntrySet
254: 1 16 java.util.ResourceBundle$Control
255: 1 16 java.util.WeakHashMap$KeySet
256: 1 16 java.util.concurrent.atomic.AtomicBoolean
257: 1 16 java.util.jar.Attributes
258: 1 16 java.util.jar.JavaUtilJarAccessImpl
259: 1 16 java.util.zip.ZipFile$1
260: 1 16 jdk.net.ExtendedSocketOptions$PlatformSocketOptions
261: 1 16 sun.misc.ASCIICaseInsensitiveComparator
262: 1 16 sun.misc.FloatingDecimal$1
263: 1 16 sun.misc.Launcher
264: 1 16 sun.misc.Launcher$Factory
265: 1 16 sun.misc.Perf
266: 1 16 sun.misc.Unsafe
267: 1 16 sun.net.spi.DefaultProxySelector
268: 1 16 sun.net.www.protocol.file.Handler
269: 1 16 sun.reflect.DelegatingMethodAccessorImpl
270: 1 16 sun.reflect.ReflectionFactory
271: 1 16 sun.util.calendar.Gregorian
272: 1 16 sun.util.locale.provider.AuxLocaleProviderAdapter$NullProvider
273: 1 16 sun.util.locale.provider.SPILocaleProviderAdapter
274: 1 16 sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter
275: 1 16 sun.util.resources.LocaleData
276: 1 16 sun.util.resources.LocaleData$LocaleDataResourceBundleControl
Total 15227 994896
(4)命令四
jmap -histo pid
描述:显示堆中对象的统计信息
其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象
H:\project\jvmtestdemo>jmap -histo 27684
num #instances #bytes class name
----------------------------------------------
1: 669 10666648 [I
2: 1113 1225760 [B
3: 7831 924880 [C
4: 5988 143712 java.lang.String
5: 706 80896 java.lang.Class
6: 1314 61784 [Ljava.lang.Object;
7: 791 31640 java.util.TreeMap$Entry
8: 629 25160 java.util.LinkedHashMap$Entry
9: 455 22192 [Ljava.lang.String;
10: 1374 21984 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry
11: 375 12000 java.util.HashMap$Node
12: 39 11664 [Ljava.util.HashMap$Node;
13: 152 10944 java.lang.reflect.Field
14: 448 10752 java.lang.StringBuilder
15: 242 7744 java.util.Hashtable$Entry
16: 233 7456 java.io.File
17: 101 6464 java.net.URL
18: 238 5712 java.lang.StringBuffer
19: 125 5000 java.lang.ref.SoftReference
20: 258 4128 java.lang.Integer
21: 117 3744 java.util.concurrent.ConcurrentHashMap$Node
22: 25 3648 [Ljava.util.Hashtable$Entry;
23: 74 3552 java.nio.HeapCharBuffer
24: 71 3408 java.nio.HeapByteBuffer
25: 42 3360 [S
26: 8 3008 java.lang.Thread
27: 44 2464 sun.misc.URLClassPath$JarLoader
28: 19 2416 [Ljava.util.concurrent.ConcurrentHashMap$Node;
29: 2 2384 [[Ljava.lang.Object;
30: 89 2136 java.net.Parts
31: 2 2080 [[C
32: 26 2080 java.lang.reflect.Constructor
33: 43 2064 java.util.HashMap
34: 39 1872 sun.util.locale.LocaleObjectCache$CacheEntry
35: 43 1720 java.lang.ref.Finalizer
36: 1 1568 [[B
37: 93 1488 java.lang.Object
38: 37 1480 java.io.ObjectStreamField
39: 26 1456 java.lang.Class$ReflectionData
40: 20 1280 java.util.concurrent.ConcurrentHashMap
41: 15 1200 [Ljava.util.WeakHashMap$Entry;
42: 45 1080 sun.misc.URLClassPath$3
43: 2 1064 [Ljava.lang.invoke.MethodHandle;
44: 11 1056 java.util.jar.JarFile$JarFileEntry
45: 1 1040 [Ljava.lang.Integer;
46: 41 984 java.io.ExpiringCache$Entry
47: 11 880 java.util.zip.ZipEntry
48: 22 880 sun.util.locale.BaseLocale$Key
49: 48 864 [Ljava.lang.Class;
50: 15 840 sun.nio.cs.UTF_8$Encoder
51: 34 816 sun.security.action.GetPropertyAction
52: 12 768 java.util.jar.JarFile
53: 12 752 [Ljava.lang.reflect.Field;
54: 15 720 java.util.WeakHashMap
55: 22 704 java.lang.ref.ReferenceQueue
56: 17 680 java.util.WeakHashMap$Entry
57: 12 672 java.util.zip.ZipFile$ZipFileInputStream
58: 19 608 java.util.Locale
59: 19 608 sun.util.locale.BaseLocale
60: 10 560 java.util.ResourceBundle$CacheKey
61: 14 560 sun.nio.cs.UTF_8$Decoder
62: 22 528 java.util.Locale$LocaleKey
63: 13 520 java.security.AccessControlContext
64: 21 504 java.util.jar.Attributes$Name
65: 20 480 java.util.ArrayList
66: 18 432 sun.misc.MetaIndex
67: 10 400 java.io.FileDescriptor
68: 13 392 [Ljava.io.ObjectStreamField;
69: 1 384 com.intellij.rt.execution.application.AppMainV2$1
70: 1 384 java.lang.ref.Finalizer$FinalizerThread
71: 24 384 java.lang.ref.ReferenceQueue$Lock
72: 6 384 java.nio.DirectByteBuffer
73: 12 384 java.util.zip.ZipCoder
74: 1 376 java.lang.ref.Reference$ReferenceHandler
75: 4 352 java.lang.reflect.Method
76: 6 336 java.nio.DirectLongBufferU
77: 7 336 java.util.Hashtable
78: 7 336 java.util.Hashtable$Enumerator
79: 6 336 java.util.LinkedHashMap
80: 14 336 sun.misc.FileURLMapper
81: 6 336 sun.nio.cs.ext.DoubleByte$Decoder
82: 10 320 java.lang.OutOfMemoryError
83: 10 320 java.util.ResourceBundle$LoaderReference
84: 10 320 java.util.Vector
85: 3 312 [D
86: 13 312 [Ljava.lang.reflect.Constructor;
87: 13 312 java.lang.Class$1
88: 13 312 sun.reflect.NativeConstructorAccessorImpl
89: 12 288 java.util.ArrayDeque
90: 6 288 java.util.Properties
91: 3 280 [[Ljava.lang.String;
92: 11 264 java.net.StandardSocketOptions$StdSocketOption
93: 8 256 java.util.ArrayList$Itr
94: 3 240 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
95: 6 240 java.util.HashMap$EntryIterator
96: 6 240 java.util.HashMap$KeyIterator
97: 15 240 java.util.HashSet
98: 3 232 [Ljava.net.URL;
99: 7 224 java.lang.ThreadLocal$ThreadLocalMap$Entry
100: 7 224 java.security.CodeSource
101: 14 224 sun.misc.URLClassPath$JarLoader$1
102: 4 224 sun.util.calendar.ZoneInfo
103: 9 216 java.util.LinkedList$Node
104: 2 208 sun.net.www.protocol.file.FileURLConnection
105: 13 208 sun.reflect.DelegatingConstructorAccessorImpl
106: 5 200 java.security.ProtectionDomain
107: 3 192 [Ljava.io.File;
108: 4 192 java.io.BufferedReader
109: 6 192 java.io.FileInputStream
110: 8 192 java.net.URLClassLoader$1
111: 6 192 java.util.Collections$UnmodifiableMap
112: 4 192 java.util.TreeMap
113: 4 192 sun.nio.cs.StreamDecoder
114: 4 192 sun.nio.cs.StreamEncoder
115: 3 192 sun.nio.cs.ext.DoubleByte$Encoder
116: 2 192 sun.util.calendar.Gregorian$Date
117: 4 160 java.io.BufferedWriter
118: 4 160 java.lang.ClassLoader$NativeLibrary
119: 4 160 java.lang.ClassNotFoundException
120: 4 160 java.security.PrivilegedActionException
121: 5 160 java.util.LinkedList
122: 5 160 sun.util.locale.provider.LocaleProviderAdapter$Type
123: 6 144 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$1
124: 3 144 java.util.StringTokenizer
125: 6 144 sun.misc.PerfCounter
126: 3 144 sun.misc.URLClassPath
127: 6 144 sun.usagetracker.UsageTrackerClient$1
128: 6 144 sun.util.resources.LocaleData$1
129: 2 128 java.io.ExpiringCache$1
130: 4 128 java.lang.StringCoding$StringDecoder
131: 4 128 java.lang.StringCoding$StringEncoder
132: 4 128 java.util.Stack
133: 4 128 java.util.concurrent.ConcurrentHashMap$ForwardingNode
134: 3 120 java.io.BufferedInputStream
135: 1 120 java.net.SocksSocketImpl
136: 5 120 java.util.Collections$UnmodifiableRandomAccessList
137: 5 120 sun.misc.FloatingDecimal$PreparedASCIIToBinaryBuffer
138: 7 112 java.lang.Class$3
139: 2 112 java.lang.Package
140: 2 112 java.util.zip.ZipFile$ZipFileInflaterInputStream
141: 2 112 sun.nio.cs.ISO_8859_1$Encoder
142: 3 96 java.io.FileOutputStream
143: 3 96 java.io.FilePermission
144: 4 96 java.io.OutputStreamWriter
145: 4 96 java.lang.RuntimePermission
146: 2 96 java.lang.ThreadGroup
147: 6 96 java.lang.ThreadLocal
148: 3 96 java.lang.ref.WeakReference
149: 1 96 java.net.DualStackPlainSocketImpl
150: 6 96 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
151: 6 96 java.util.HashMap$KeySet
152: 2 96 java.util.ResourceBundle$BundleReference
153: 2 96 java.util.zip.Inflater
154: 4 96 jdk.net.ExtendedSocketOptions$ExtSocketOption
155: 1 96 sun.misc.Launcher$AppClassLoader
156: 3 96 sun.misc.URLClassPath$JarLoader$2
157: 3 96 sun.net.spi.DefaultProxySelector$NonProxyInfo
158: 1 88 sun.misc.Launcher$ExtClassLoader
159: 5 80 [Ljava.security.Principal;
160: 2 80 [Lsun.util.locale.provider.LocaleProviderAdapter$Type;
161: 2 80 java.io.ExpiringCache
162: 5 80 java.io.FileInputStream$1
163: 5 80 java.lang.ClassLoader$3
164: 1 80 java.net.URI
165: 5 80 java.security.ProtectionDomain$Key
166: 2 80 java.util.ServiceLoader$LazyIterator
167: 2 80 sun.misc.FloatingDecimal$BinaryToASCIIBuffer
168: 2 80 sun.misc.URLClassPath$1
169: 2 80 sun.misc.URLClassPath$2
170: 2 80 sun.util.locale.LanguageTag
171: 3 72 [Ljava.lang.reflect.Method;
172: 3 72 java.lang.ThreadLocal$ThreadLocalMap
173: 3 72 java.net.Proxy$Type
174: 3 72 java.util.Arrays$ArrayList
175: 3 72 java.util.Collections$SynchronizedSet
176: 1 72 java.util.ResourceBundle$RBClassLoader
177: 3 72 java.util.concurrent.atomic.AtomicLong
178: 3 72 sun.misc.FloatingDecimal$ExceptionalBinaryToASCIIBuffer
179: 1 72 sun.util.locale.provider.JRELocaleProviderAdapter
180: 1 64 [F
181: 2 64 [Ljava.lang.Thread;
182: 2 64 java.io.FileNotFoundException
183: 2 64 java.io.PrintStream
184: 2 64 java.lang.ClassValue$Entry
185: 2 64 java.lang.NoSuchMethodError
186: 2 64 java.lang.VirtualMachineError
187: 2 64 java.lang.ref.ReferenceQueue$Null
188: 2 64 java.security.BasicPermissionCollection
189: 2 64 java.security.Permissions
190: 2 64 java.util.LinkedHashMap$LinkedEntryIterator
191: 2 64 java.util.ServiceLoader
192: 4 64 sun.reflect.ReflectionFactory$1
193: 1 48 [J
194: 2 48 [Ljava.util.Enumeration;
195: 2 48 java.io.BufferedOutputStream
196: 2 48 java.io.ByteArrayOutputStream
197: 2 48 java.io.File$PathStatus
198: 3 48 java.io.FilePermission$1
199: 2 48 java.io.FilePermissionCollection
200: 2 48 java.io.FileReader
201: 2 48 java.io.InputStreamReader
202: 2 48 java.net.InetAddress$Cache
203: 2 48 java.net.InetAddress$Cache$Type
204: 1 48 java.net.SocketInputStream
205: 2 48 java.net.URLClassLoader$3
206: 2 48 java.nio.charset.CoderResult
207: 3 48 java.nio.charset.CodingErrorAction
208: 2 48 java.util.Collections$UnmodifiableCollection$1
209: 3 48 java.util.Collections$UnmodifiableSet
210: 2 48 java.util.Date
211: 1 48 java.util.Properties$LineReader
212: 2 48 java.util.ServiceLoader$1
213: 2 48 java.util.zip.ZStreamRef
214: 2 48 sun.instrument.InstrumentationImpl$1
215: 2 48 sun.misc.CompoundEnumeration
216: 2 48 sun.misc.NativeSignalHandler
217: 2 48 sun.misc.Signal
218: 2 48 sun.net.www.MessageHeader
219: 3 48 sun.net.www.ParseUtil
220: 3 48 sun.net.www.protocol.jar.Handler
221: 2 48 sun.nio.cs.Surrogate$Parser
222: 1 48 sun.nio.cs.US_ASCII$Decoder
223: 3 48 sun.reflect.ReflectionFactory$GetReflectionFactoryAction
224: 1 48 sun.util.resources.TimeZoneNames
225: 1 48 sun.util.resources.en.TimeZoneNames_en
226: 1 40 java.util.ResourceBundle$1
227: 1 40 sun.nio.cs.StandardCharsets$Aliases
228: 1 40 sun.nio.cs.StandardCharsets$Cache
229: 1 40 sun.nio.cs.StandardCharsets$Classes
230: 1 40 sun.nio.cs.ext.ExtendedCharsets
231: 1 32 [Ljava.lang.OutOfMemoryError;
232: 2 32 [Ljava.lang.StackTraceElement;
233: 1 32 [Ljava.lang.ThreadGroup;
234: 1 32 [Ljava.net.Proxy$Type;
235: 1 32 java.io.DataInputStream
236: 1 32 java.io.WinNTFileSystem
237: 1 32 java.lang.ArithmeticException
238: 2 32 java.lang.Boolean
239: 2 32 java.lang.ClassLoader$2
240: 1 32 java.lang.InternalError
241: 1 32 java.lang.NullPointerException
242: 1 32 java.net.InetAddress$InetAddressHolder
243: 1 32 java.net.Socket
244: 1 32 java.net.URI$Parser
245: 2 32 java.net.URLClassLoader$3$1
246: 2 32 java.nio.ByteOrder
247: 2 32 java.util.Hashtable$KeySet
248: 2 32 java.util.LinkedHashMap$LinkedEntrySet
249: 2 32 java.util.LinkedHashMap$LinkedKeySet
250: 2 32 java.util.concurrent.atomic.AtomicInteger
251: 1 32 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
252: 1 32 java.util.jar.Manifest$FastInputStream
253: 1 32 jdk.net.ExtendedSocketOptions$1
254: 1 32 sun.instrument.InstrumentationImpl
255: 1 32 sun.misc.FloatingDecimal$ASCIIToBinaryBuffer
256: 2 32 sun.misc.PostVMInitHook$1
257: 1 32 sun.misc.URLClassPath$FileLoader$1
258: 1 32 sun.net.spi.DefaultProxySelector$3
259: 1 32 sun.nio.cs.StandardCharsets
260: 2 32 sun.usagetracker.UsageTrackerClient$2
261: 2 32 sun.usagetracker.UsageTrackerClient$3
262: 1 32 sun.util.locale.provider.LocaleResources
263: 1 32 sun.util.locale.provider.LocaleServiceProviderPool
264: 1 24 [Ljava.io.File$PathStatus;
265: 1 24 [Ljava.lang.ClassValue$Entry;
266: 1 24 [Ljava.net.InetAddress$Cache$Type;
267: 1 24 [Ljava.net.InetAddress;
268: 1 24 [Ljava.security.ProtectionDomain;
269: 1 24 [Lsun.launcher.LauncherHelper;
270: 1 24 java.lang.Class$MethodArray
271: 1 24 java.lang.ClassValue$Version
272: 1 24 java.lang.invoke.MethodHandleImpl$4
273: 1 24 java.lang.reflect.ReflectPermission
274: 1 24 java.net.Inet4Address
275: 1 24 java.net.Inet6AddressImpl
276: 1 24 java.net.InetSocketAddress$InetSocketAddressHolder
277: 1 24 java.net.Proxy
278: 1 24 java.util.BitSet
279: 1 24 java.util.Collections$EmptyMap
280: 1 24 java.util.Collections$SetFromMap
281: 1 24 java.util.Locale$Cache
282: 1 24 java.util.ResourceBundle$Control$CandidateListCache
283: 1 24 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
284: 1 24 java.util.jar.Manifest
285: 1 24 sun.instrument.TransformerManager
286: 1 24 sun.launcher.LauncherHelper
287: 1 24 sun.misc.JarIndex
288: 1 24 sun.misc.Launcher$AppClassLoader$1
289: 1 24 sun.misc.URLClassPath$FileLoader
290: 1 24 sun.nio.cs.ISO_8859_1
291: 1 24 sun.nio.cs.ThreadLocalCoders$1
292: 1 24 sun.nio.cs.ThreadLocalCoders$2
293: 1 24 sun.nio.cs.US_ASCII
294: 1 24 sun.nio.cs.UTF_16
295: 1 24 sun.nio.cs.UTF_16BE
296: 1 24 sun.nio.cs.UTF_16LE
297: 1 24 sun.nio.cs.UTF_8
298: 1 24 sun.nio.cs.ext.GBK
299: 1 24 sun.reflect.NativeMethodAccessorImpl
300: 1 24 sun.usagetracker.UsageTrackerClient$4
301: 1 24 sun.util.locale.BaseLocale$Cache
302: 1 24 sun.util.locale.provider.SPILocaleProviderAdapter$1
303: 1 24 sun.util.locale.provider.TimeZoneNameProviderImpl
304: 1 16 [Ljava.lang.Throwable;
305: 1 16 [Ljava.security.cert.Certificate;
306: 1 16 [Lsun.instrument.TransformerManager$TransformerInfo;
307: 1 16 com.example.demo.jmapdemo
308: 1 16 java.io.FileDescriptor$1
309: 1 16 java.io.FileOutputStream$1
310: 1 16 java.lang.CharacterDataLatin1
311: 1 16 java.lang.ClassValue$Identity
312: 1 16 java.lang.Compiler$1
313: 1 16 java.lang.Runtime
314: 1 16 java.lang.String$CaseInsensitiveComparator
315: 1 16 java.lang.System$2
316: 1 16 java.lang.SystemClassLoaderAction
317: 1 16 java.lang.Terminator$1
318: 1 16 java.lang.invoke.MemberName$Factory
319: 1 16 java.lang.invoke.MethodHandleImpl$1
320: 1 16 java.lang.invoke.MethodHandleImpl$2
321: 1 16 java.lang.invoke.MethodHandleImpl$3
322: 1 16 java.lang.invoke.MethodHandleStatics$1
323: 1 16 java.lang.ref.Reference$1
324: 1 16 java.lang.ref.Reference$Lock
325: 1 16 java.lang.reflect.ReflectAccess
326: 1 16 java.net.AbstractPlainSocketImpl$1
327: 1 16 java.net.InetAddress$1
328: 1 16 java.net.InetAddress$2
329: 1 16 java.net.InetSocketAddress
330: 1 16 java.net.PlainSocketImpl$1
331: 1 16 java.net.Socket$2
332: 1 16 java.net.SocksSocketImpl$3
333: 1 16 java.net.URLClassLoader$7
334: 1 16 java.nio.Bits$1
335: 1 16 java.nio.charset.Charset$ExtendedProviderHolder$1
336: 1 16 java.nio.charset.CoderResult$1
337: 1 16 java.nio.charset.CoderResult$2
338: 1 16 java.security.ProtectionDomain$2
339: 1 16 java.security.ProtectionDomain$JavaSecurityAccessImpl
340: 1 16 java.util.Collections$EmptyIterator
341: 1 16 java.util.Collections$EmptyList
342: 1 16 java.util.Collections$EmptySet
343: 1 16 java.util.HashMap$EntrySet
344: 1 16 java.util.Hashtable$EntrySet
345: 1 16 java.util.ResourceBundle$Control
346: 1 16 java.util.ResourceBundle$RBClassLoader$1
347: 1 16 java.util.TimeZone$1
348: 1 16 java.util.WeakHashMap$KeySet
349: 1 16 java.util.concurrent.atomic.AtomicBoolean
350: 1 16 java.util.jar.Attributes
351: 1 16 java.util.jar.JavaUtilJarAccessImpl
352: 1 16 java.util.zip.ZipFile$1
353: 1 16 jdk.net.ExtendedSocketOptions$PlatformSocketOptions
354: 1 16 jdk.net.ExtendedSocketOptions$PlatformSocketOptions$1
355: 1 16 sun.misc.ASCIICaseInsensitiveComparator
356: 1 16 sun.misc.FloatingDecimal$1
357: 1 16 sun.misc.Launcher
358: 1 16 sun.misc.Launcher$BootClassPathHolder$1
359: 1 16 sun.misc.Launcher$ExtClassLoader$1
360: 1 16 sun.misc.Launcher$Factory
361: 1 16 sun.misc.Perf
362: 1 16 sun.misc.Perf$GetPerfAction
363: 1 16 sun.misc.PostVMInitHook$2
364: 1 16 sun.misc.Unsafe
365: 1 16 sun.net.NetProperties$1
366: 1 16 sun.net.spi.DefaultProxySelector
367: 1 16 sun.net.spi.DefaultProxySelector$1
368: 1 16 sun.net.www.protocol.file.Handler
369: 1 16 sun.reflect.DelegatingMethodAccessorImpl
370: 1 16 sun.reflect.ReflectionFactory
371: 1 16 sun.security.action.GetBooleanAction
372: 1 16 sun.usagetracker.UsageTrackerClient
373: 1 16 sun.util.calendar.Gregorian
374: 1 16 sun.util.calendar.ZoneInfoFile$1
375: 1 16 sun.util.locale.provider.AuxLocaleProviderAdapter$NullProvider
376: 1 16 sun.util.locale.provider.JRELocaleProviderAdapter$1
377: 1 16 sun.util.locale.provider.SPILocaleProviderAdapter
378: 1 16 sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter
379: 1 16 sun.util.resources.LocaleData
380: 1 16 sun.util.resources.LocaleData$LocaleDataResourceBundleControl
Total 25234 13379896
(5)命令五
jmap -clstats pid
描述:打印类加载器信息
-clstats是-permstat的替代方案,在JDK8之前,-permstat用来打印类加载器的数据
打印Java堆内存的永久保存区域的类加载器的智能统计信息。对于每个类加载器而言,它的名称、活跃度、地址、父类加载器、它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。
H:\project\jvmtestdemo>jmap -clstats 27684
Attaching to process ID 27684, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.261-b12
finding class loader instances ..done.
computing per loader stat ..done.
please wait.. computing liveness.......done.
class_loader classes bytes parent_loader alive? type
<bootstrap> 622 1162347 null live <internal>
0x00000006eb8108e0 0 0 null live sun/misc/Launcher$ExtClassLoader@0x00000007c000fd00
0x00000006ec19eeb8 0 0 0x00000006eb828358 live java/util/ResourceBundle$RBClassLoader@0x00000007c00662d8
0x00000006eb828358 4 5188 0x00000006eb8108e0 live sun/misc/Launcher$AppClassLoader@0x00000007c000f958
total = 4 626 1167535 N/A alive=4, dead=0 N/A
(6)命令六
jmap -finalizerinfo pid
描述:打印等待终结的对象信息
Number of objects pending for finalization:0 说明当前F-Queue队列中并没有等待Finalizer线程执行finalizer方法的对象。
H:\project\jvmtestdemo>jmap -finalizerinfo 27684
Attaching to process ID 27684, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.261-b12
Number of objects pending for finalization: 0
目前没有GC,所以finalization的数量为0。
(7)命令七
jmap -dump:live,format=b,file=d:\jmap.bin pid
描述:生成堆转储快照dump文件
以二进制格式转储Java堆到指定filename的文件中。live子选项是可选的。如果指定了live子选项,堆中只有活动的对象会被转储。想要浏览heap dump,你可以使用jhat(Java堆分析工具)读取生成的文件。这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用, 线上系统慎用。
H:\project\jvmtestdemo>jmap -dump:live,format=b,file=D:/jmap.bin 27684
Dumping heap to D:\jmap.bin ...
Heap dump file created
