JVM(9):虚拟机性能分析和故障解决工具之jmap工具

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-b12using thread-local object allocation.
Parallel GC with 10 thread(s)Heap Configuration:MinHeapFreeRatio         = 0MaxHeapFreeRatio         = 100MaxHeapSize              = 10697572352 (10202.0MB)NewSize                  = 222822400 (212.5MB)MaxNewSize               = 3565682688 (3400.5MB)OldSize                  = 446169088 (425.5MB)NewRatio                 = 2SurvivorRatio            = 8MetaspaceSize            = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize         = 17592186044415 MBG1HeapRegionSize         = 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 Generationcapacity = 446169088 (425.5MB)used     = 0 (0.0MB)free     = 446169088 (425.5MB)0.0% used3185 interned Strings occupying 261152 bytes.

(3)命令三

jmap -histo:live pid

描述:显示堆中对象的统计信息

其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象

如下:

H:\project\jvmtestdemo>jmap -histo:live 28016num     #instances         #bytes  class name
----------------------------------------------1:          4586         439440  [C2:           420         135856  [B3:          4437         106488  java.lang.String4:           706          80896  java.lang.Class5:           634          41568  [Ljava.lang.Object;6:           791          31640  java.util.TreeMap$Entry7:           629          25160  java.util.LinkedHashMap$Entry8:           425          19040  [Ljava.lang.String;9:           373          11936  java.util.HashMap$Node10:            24           8640  [Ljava.util.HashMap$Node;11:           113           8136  java.lang.reflect.Field12:           132           7664  [I13:            87           5568  java.net.URL14:           110           4400  java.lang.ref.SoftReference15:           256           4096  java.lang.Integer16:           121           3872  java.util.Hashtable$Entry17:           107           3424  java.util.concurrent.ConcurrentHashMap$Node18:             8           3008  java.lang.Thread19:            42           2352  sun.misc.URLClassPath$JarLoader20:            26           2080  java.lang.reflect.Constructor21:            15           1968  [Ljava.util.concurrent.ConcurrentHashMap$Node;22:            39           1872  sun.util.locale.LocaleObjectCache$CacheEntry23:            43           1720  java.lang.ref.Finalizer24:            34           1632  java.util.HashMap25:             1           1568  [[B26:            93           1488  java.lang.Object27:            37           1480  java.io.ObjectStreamField28:            26           1456  java.lang.Class$ReflectionData29:            20           1280  java.util.concurrent.ConcurrentHashMap30:            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  [[C35:            41            984  java.io.ExpiringCache$Entry36:            15            840  sun.nio.cs.UTF_8$Encoder37:            12            768  java.util.jar.JarFile38:            19            760  sun.util.locale.BaseLocale$Key39:            15            720  java.util.WeakHashMap40:            22            704  java.lang.ref.ReferenceQueue41:             7            672  java.util.jar.JarFile$JarFileEntry42:            12            672  java.util.zip.ZipFile$ZipFileInputStream43:            11            648  [Ljava.lang.reflect.Field;44:             8            640  [S45:            19            608  java.io.File46:            19            608  java.util.Locale47:            19            608  sun.util.locale.BaseLocale48:            13            520  java.security.AccessControlContext49:            21            504  java.util.jar.Attributes$Name50:            19            456  java.util.Locale$LocaleKey51:            18            432  sun.misc.MetaIndex52:            10            400  java.io.FileDescriptor53:            10            400  sun.nio.cs.UTF_8$Decoder54:            13            392  [Ljava.io.ObjectStreamField;55:             1            384  com.intellij.rt.execution.application.AppMainV2$156:             1            384  java.lang.ref.Finalizer$FinalizerThread57:            24            384  java.lang.ref.ReferenceQueue$Lock58:             6            384  java.nio.DirectByteBuffer59:            12            384  java.util.zip.ZipCoder60:             1            376  java.lang.ref.Reference$ReferenceHandler61:            18            352  [Ljava.lang.Class;62:             6            336  java.nio.DirectLongBufferU63:            10            320  java.lang.OutOfMemoryError64:             3            312  [D65:            13            312  [Ljava.lang.reflect.Constructor;66:            13            312  sun.reflect.NativeConstructorAccessorImpl67:            12            288  java.util.ArrayDeque68:             3            264  java.lang.reflect.Method69:            11            264  java.net.StandardSocketOptions$StdSocketOption70:            11            264  java.util.ArrayList71:             8            256  java.util.Vector72:             3            240  [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;73:             5            240  java.util.Hashtable74:             6            240  java.util.WeakHashMap$Entry75:             7            224  java.lang.ThreadLocal$ThreadLocalMap$Entry76:             4            224  java.util.LinkedHashMap77:             4            224  sun.util.calendar.ZoneInfo78:             9            216  java.util.LinkedList$Node79:            13            208  sun.reflect.DelegatingConstructorAccessorImpl80:             5            200  java.security.ProtectionDomain81:             6            192  java.io.FileInputStream82:             4            192  java.util.Properties83:             4            192  java.util.TreeMap84:             2            160  [[Ljava.lang.String;85:             4            160  java.lang.ClassLoader$NativeLibrary86:             5            160  java.security.CodeSource87:             5            160  java.util.LinkedList88:             5            160  sun.util.locale.provider.LocaleProviderAdapter$Type89:             3            144  java.nio.HeapByteBuffer90:             6            144  sun.misc.PerfCounter91:             3            144  sun.misc.URLClassPath92:             2            128  java.io.ExpiringCache$193:             4            128  java.util.Stack94:             2            128  sun.nio.cs.ext.DoubleByte$Encoder95:             1            120  java.net.SocksSocketImpl96:             5            120  java.util.Collections$UnmodifiableRandomAccessList97:             5            120  sun.misc.FloatingDecimal$PreparedASCIIToBinaryBuffer98:             2            112  java.lang.Package99:             7            112  java.util.HashSet100:             2            112  java.util.ResourceBundle$CacheKey101:             2            112  java.util.zip.ZipFile$ZipFileInflaterInputStream102:             2            112  sun.nio.cs.ext.DoubleByte$Decoder103:             3             96  java.io.FileOutputStream104:             4             96  java.lang.RuntimePermission105:             3             96  java.lang.StringCoding$StringEncoder106:             2             96  java.lang.ThreadGroup107:             6             96  java.lang.ThreadLocal108:             1             96  java.net.DualStackPlainSocketImpl109:             2             96  java.util.ResourceBundle$BundleReference110:             2             96  java.util.zip.Inflater111:             4             96  jdk.net.ExtendedSocketOptions$ExtSocketOption112:             1             96  sun.misc.Launcher$AppClassLoader113:             3             96  sun.net.spi.DefaultProxySelector$NonProxyInfo114:             2             96  sun.nio.cs.StreamEncoder115:             1             88  sun.misc.Launcher$ExtClassLoader116:             5             80  [Ljava.security.Principal;117:             2             80  java.io.BufferedWriter118:             2             80  java.io.ExpiringCache119:             5             80  java.security.ProtectionDomain$Key120:             2             80  sun.misc.FloatingDecimal$BinaryToASCIIBuffer121:             3             72  java.lang.ThreadLocal$ThreadLocalMap122:             3             72  java.net.Proxy$Type123:             3             72  java.util.Arrays$ArrayList124:             1             72  java.util.ResourceBundle$RBClassLoader125:             3             72  java.util.concurrent.atomic.AtomicLong126:             3             72  sun.misc.FloatingDecimal$ExceptionalBinaryToASCIIBuffer127:             1             72  sun.util.locale.provider.JRELocaleProviderAdapter128:             1             64  [F129:             2             64  [Ljava.lang.Thread;130:             2             64  java.io.FilePermission131:             2             64  java.io.PrintStream132:             2             64  java.lang.ClassValue$Entry133:             2             64  java.lang.StringCoding$StringDecoder134:             2             64  java.lang.VirtualMachineError135:             2             64  java.lang.ref.ReferenceQueue$Null136:             2             64  java.lang.ref.WeakReference137:             2             64  java.security.BasicPermissionCollection138:             2             64  java.security.Permissions139:             2             64  java.util.ResourceBundle$LoaderReference140:             1             48  [J141:             2             48  [Ljava.lang.reflect.Method;142:             2             48  java.io.BufferedOutputStream143:             1             48  java.io.BufferedReader144:             2             48  java.io.File$PathStatus145:             2             48  java.io.FilePermissionCollection146:             2             48  java.io.OutputStreamWriter147:             2             48  java.net.InetAddress$Cache148:             2             48  java.net.InetAddress$Cache$Type149:             1             48  java.net.SocketInputStream150:             1             48  java.nio.HeapCharBuffer151:             2             48  java.nio.charset.CoderResult152:             3             48  java.nio.charset.CodingErrorAction153:             3             48  java.util.Collections$UnmodifiableSet154:             3             48  java.util.HashMap$KeySet155:             2             48  java.util.zip.ZStreamRef156:             2             48  sun.misc.NativeSignalHandler157:             2             48  sun.misc.Signal158:             3             48  sun.net.www.protocol.jar.Handler159:             1             48  sun.nio.cs.StreamDecoder160:             1             48  sun.nio.cs.US_ASCII$Decoder161:             1             48  sun.util.resources.TimeZoneNames162:             1             48  sun.util.resources.en.TimeZoneNames_en163:             1             40  [Lsun.util.locale.provider.LocaleProviderAdapter$Type;164:             1             40  java.io.BufferedInputStream165:             1             40  java.util.ResourceBundle$1166:             1             40  sun.nio.cs.StandardCharsets$Aliases167:             1             40  sun.nio.cs.StandardCharsets$Cache168:             1             40  sun.nio.cs.StandardCharsets$Classes169:             1             40  sun.nio.cs.ext.ExtendedCharsets170:             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.WinNTFileSystem175:             1             32  java.lang.ArithmeticException176:             2             32  java.lang.Boolean177:             1             32  java.lang.NullPointerException178:             1             32  java.net.InetAddress$InetAddressHolder179:             1             32  java.net.Socket180:             2             32  java.nio.ByteOrder181:             2             32  java.util.LinkedHashMap$LinkedKeySet182:             2             32  java.util.concurrent.atomic.AtomicInteger183:             1             32  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl184:             1             32  jdk.net.ExtendedSocketOptions$1185:             1             32  sun.instrument.InstrumentationImpl186:             1             32  sun.nio.cs.StandardCharsets187:             1             32  sun.util.locale.provider.LocaleResources188:             1             32  sun.util.locale.provider.LocaleServiceProviderPool189:             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.InputStreamReader195:             1             24  java.lang.ClassValue$Version196:             1             24  java.lang.StringBuilder197:             1             24  java.lang.invoke.MethodHandleImpl$4198:             1             24  java.lang.reflect.ReflectPermission199:             1             24  java.net.Inet4Address200:             1             24  java.net.Inet6AddressImpl201:             1             24  java.net.Proxy202:             1             24  java.util.BitSet203:             1             24  java.util.Collections$EmptyMap204:             1             24  java.util.Collections$SetFromMap205:             1             24  java.util.Collections$SynchronizedSet206:             1             24  java.util.Locale$Cache207:             1             24  java.util.ResourceBundle$Control$CandidateListCache208:             1             24  java.util.jar.Manifest209:             1             24  sun.instrument.TransformerManager210:             1             24  sun.launcher.LauncherHelper211:             1             24  sun.misc.JarIndex212:             1             24  sun.misc.URLClassPath$FileLoader213:             1             24  sun.nio.cs.ISO_8859_1214:             1             24  sun.nio.cs.ThreadLocalCoders$1215:             1             24  sun.nio.cs.ThreadLocalCoders$2216:             1             24  sun.nio.cs.US_ASCII217:             1             24  sun.nio.cs.UTF_16218:             1             24  sun.nio.cs.UTF_16BE219:             1             24  sun.nio.cs.UTF_16LE220:             1             24  sun.nio.cs.UTF_8221:             1             24  sun.nio.cs.ext.GBK222:             1             24  sun.reflect.NativeMethodAccessorImpl223:             1             24  sun.util.locale.BaseLocale$Cache224:             1             24  sun.util.locale.provider.TimeZoneNameProviderImpl225:             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.jmapdemo229:             1             16  java.io.FileDescriptor$1230:             1             16  java.lang.CharacterDataLatin1231:             1             16  java.lang.ClassValue$Identity232:             1             16  java.lang.Runtime233:             1             16  java.lang.String$CaseInsensitiveComparator234:             1             16  java.lang.System$2235:             1             16  java.lang.Terminator$1236:             1             16  java.lang.invoke.MemberName$Factory237:             1             16  java.lang.invoke.MethodHandleImpl$2238:             1             16  java.lang.invoke.MethodHandleImpl$3239:             1             16  java.lang.ref.Reference$1240:             1             16  java.lang.ref.Reference$Lock241:             1             16  java.lang.reflect.ReflectAccess242:             1             16  java.net.InetAddress$2243:             1             16  java.net.URLClassLoader$7244:             1             16  java.nio.Bits$1245:             1             16  java.nio.charset.CoderResult$1246:             1             16  java.nio.charset.CoderResult$2247:             1             16  java.security.ProtectionDomain$2248:             1             16  java.security.ProtectionDomain$JavaSecurityAccessImpl249:             1             16  java.util.Collections$EmptyIterator250:             1             16  java.util.Collections$EmptyList251:             1             16  java.util.Collections$EmptySet252:             1             16  java.util.HashMap$EntrySet253:             1             16  java.util.Hashtable$EntrySet254:             1             16  java.util.ResourceBundle$Control255:             1             16  java.util.WeakHashMap$KeySet256:             1             16  java.util.concurrent.atomic.AtomicBoolean257:             1             16  java.util.jar.Attributes258:             1             16  java.util.jar.JavaUtilJarAccessImpl259:             1             16  java.util.zip.ZipFile$1260:             1             16  jdk.net.ExtendedSocketOptions$PlatformSocketOptions261:             1             16  sun.misc.ASCIICaseInsensitiveComparator262:             1             16  sun.misc.FloatingDecimal$1263:             1             16  sun.misc.Launcher264:             1             16  sun.misc.Launcher$Factory265:             1             16  sun.misc.Perf266:             1             16  sun.misc.Unsafe267:             1             16  sun.net.spi.DefaultProxySelector268:             1             16  sun.net.www.protocol.file.Handler269:             1             16  sun.reflect.DelegatingMethodAccessorImpl270:             1             16  sun.reflect.ReflectionFactory271:             1             16  sun.util.calendar.Gregorian272:             1             16  sun.util.locale.provider.AuxLocaleProviderAdapter$NullProvider273:             1             16  sun.util.locale.provider.SPILocaleProviderAdapter274:             1             16  sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter275:             1             16  sun.util.resources.LocaleData276:             1             16  sun.util.resources.LocaleData$LocaleDataResourceBundleControl
Total         15227         994896

(4)命令四

jmap -histo pid

描述:显示堆中对象的统计信息

其中包括每个Java类、对象数量、内存大小(单位:字节)、完全限定的类名。打印的虚拟机内部的类名称将会带有一个’*’前缀。如果指定了live子选项,则只计算活动的对象

(5)命令五

jmap -clstats pid

描述:打印类加载器信息

-clstats是-permstat的替代方案,在JDK8之前,-permstat用来打印类加载器的数据

打印Java堆内存的永久保存区域的类加载器的智能统计信息。对于每个类加载器而言,它的名称、活跃度、地址、父类加载器、它所加载的类的数量和大小都会被打印。此外,包含的字符串数量和大小也会被打印。

(6)命令六

jmap -finalizerinfo pid

描述:打印等待终结的对象信息

Number of objects pending for finalization:0 说明当前F-Queue队列中并没有等待Finalizer线程执行finalizer方法的对象。

(7)命令七

jmap -dump:live,format=b,file=d:\jmap.bin pid

描述:生成堆转储快照dump文件

以hprof二进制格式转储Java堆到指定filename的文件中。live子选项是可选的。如果指定了live子选项,堆中只有活动的对象会被转储。想要浏览heap dump,你可以使用jhat(Java堆分析工具)读取生成的文件。这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用, 线上系统慎用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/842516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个投稿好方法让你的文章早日发表

作为一名单位信息宣传员,我初入此行时,满腔热情,怀揣着传播单位价值、展示团队风采的理想,一头扎进了稿件撰写的海洋。我的目标很简单,就是通过文字的力量,让外界听到我们的声音,感受到我们的活力。然而,理想很丰满,现实却给我上了生动的一课。 起初,我遵循传统路径,选择了一家…

QT安装和配置[安装注意点][QT找不到python27.dll][缩小空间]

安装注意点 本文摘录于:https://blog.csdn.net/Python_0011/article/details/131699443只是做学习备份之用,绝无抄袭之意,有疑惑请联系本人! 双击"qt-online-installer-windows-x64-4.8.0.exe"文件后输入账号选择如下控…

云原生架构内涵_1.云原生架构定义

1.云原生架构 从技术的角度,云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、可观测性、灰度等&a…

什么是Capto刀柄,一起来认识一下

大家好,今天咱们不聊齿轮,说一说一款刀柄的相关内容。目前,高速加工中心的主轴转速可以达到10,000——50,000r /min ,极大地提高了生产率。高速加工工具系统的主要作用是保证刀具在机床主轴中的精确定位,将主轴的运动和…

车辆工程计算机编程:深度探索与未来挑战

车辆工程计算机编程:深度探索与未来挑战 随着科技的不断进步,车辆工程领域与计算机编程的交融日益紧密,为行业发展注入了新的活力。然而,对于许多人来说,车辆工程计算机编程究竟学什么,仍是一个充满困惑和…

【C++刷题】优选算法——递归第四辑

记忆化搜索篇 什么是记忆化搜索&#xff1f; 带 备忘录 的递归 如何实现记忆化搜索&#xff1f; a.添加一个备忘录 <可变参数&#xff0c;返回值>b.每次递归返回的时候&#xff0c;把结果放到备忘录里c.每次递归进入的时候&#xff0c;先查看一下备忘录 记忆化搜索 vs 常…

对于个人而言,大数据时代如何更好地管理自己的信息?

在大数据时代&#xff0c;管理个人信息变得尤为重要。以下是几个建议来更好地管理个人信息&#xff1a; 认识和了解自己的数字足迹&#xff1a;了解自己在互联网上的活动&#xff0c;包括浏览历史、社交媒体和在线购物数据等。通过查阅自己的帐户设置和隐私选项&#xff0c;可以…

golang信号通知 signal.Notify NotifyContext完整示例

在看示例之前有必要先看看Go程序中信号的默认行为&#xff0c; go中信号的默认行为如下&#xff1a; SIGHUP、SIGINT或SIGTERM信号会导致程序退出。SIGQUIT、SIGILL、SIGTRAP、SIGABRT、SIGSTKFLT、SIGEMT或SIGSYS信号会导致程序退出并进行堆栈转储。SIGTSTP、SIGTTIN或SIGT…

使用Nginx作为反向代理实现MQTT内外网通信

使用Nginx作为反向代理实现MQTT内外网通信 步骤1: 安装Nginx 确保你的服务器上已安装Nginx。如果未安装&#xff0c;可以通过以下命令在Ubuntu上安装Nginx&#xff1a; sudo apt update sudo apt install nginx步骤2: 配置Nginx 编辑Nginx的配置文件&#xff0c;通常是/etc…

全面掌握Prompt提示词技巧

本文综合介绍了Prompt提示词的各种技巧&#xff0c;包括高级提示工程技术、设计提示的通用技巧、优化prompt的十个技巧、AI提示词网站合集、提示工程指南以及ChatGPT提示词技巧等&#xff0c;旨在帮助读者深入理解和应用这些技巧&#xff0c;提高与AI模型的交互效率和质量。 文…

C++ 类模板 函数模板

类模板 #include <bits/stdc.h> using namespace std; //多少变量就写多少个 template<typename T1, typename T2> class Cat { public:Cat(){}Cat(T1 name, T2 age){this->age age;this->name name;}void print(){cout << this->name << …

Python脚本启动应用并输入账号或密码

一、简介 如果每天要启动某个软件还要输入账号密码登录的需求的话&#xff0c;可以参考本文章&#xff1b; 二、Python环境 环境&#xff1a;Python3.11 已经在Windows电脑中配置Python环境变量&#xff0c;且配置了pipd的环境变量&#xff1b; 三、安装模块 安装所需要的…

计算机毕业设计 | SpringBoot招投标系统 任务发布网站(附源码)

1&#xff0c;绪论 在市场范围内&#xff0c;任务发布网站很受欢迎&#xff0c;有很多开发者以及其他领域的牛人&#xff0c;更倾向于选择工作时间、工作场景更自由的零工市场寻求零散单子来补贴家用。 如今市场上&#xff0c;任务发布网站鱼龙混杂&#xff0c;用户需要找一个…

(原创)从右到左排列RecycleView的数据

问题的提出 当我们写一个Recycleview时&#xff0c;默认的效果大概是这样的&#xff1a; 当然&#xff0c;我们也可以用表格布局管理器GridLayoutManager做成这样&#xff1a; 可以看到&#xff0c;默认的绘制方向是&#xff1a; 从左到右&#xff0c;从上到下 那么问题来了…

STM32系列(HAL库)——F103C8T6通过HC-SR04超声波模块实现测距

一、模块资料 &#xff08;1&#xff09;模块简介 超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小、方向性好、能够成为射线而定向传播等特点。HC-SRO4是一款尺寸完全兼容老版本&#xff0c;增加UART和IIC功能的开放式超声波测距模块,默认条件下,软件…

执行普罗米修斯插件mysqld_exporter出现闪退问题如何解决?

运行 mysqld_exporter.exe 文件闪退的问题可能是由于配置文件或环境变量设置不正确导致的。 检查配置文件 my.cnf&#xff1a; 打开 my.cnf 文件&#xff0c;确保其中的配置项正确无误&#xff0c;尤其是 MySQL 数据库的连接信息。配置示例&#xff1a;[client] useryour_mysql…

如何评价 OpenAI 最新发布支持实时语音对话的模型GPT-4o?OpenAI发完GTP-4o,国内大模型行业还有哪些机会?

文章目录 OpenAI发完GTP-4o&#xff0c;国内大模型行业还有哪些机会&#xff1f;详细了解一下OpenAI最新发布的支持实时语音对话的模型GPT-4o国内大模型如何寻找发展机会&#xff1f;想要发展技术必须要创新与追赶或许应用场景拓展也是一种出路产业生态构建 ChatGPT 问世才 17 …

阿里妈妈->创意图片生成

数智商业技术2.0时代的新「三驾马车」,阿里妈妈郑波谈如何把握生成式大模型ACM\x26#39;23 中国图灵大会 SIGAI China 论坛上,阿里妈妈及闲鱼 CTO 郑波分享关于数智商业技术的洞见。他认为在这轮生成式 AI 大模型的驱动下,数智商业技术将进入 2.0 时代,其中知识驱动、逻辑推…

创建数据库数据插入、更新与删除

创建数据库和创建表 一、实验目的 &#xff08;1&#xff09;熟悉和掌握数据库的创建和连接方法&#xff1b; &#xff08;2&#xff09;熟悉和掌握数据库表的建立、修改和删除&#xff1b; &#xff08;3&#xff09;加深对表的实体完整性、参照完整性和用户自定义完整性的…

【程序员如何送外卖】

嘿&#xff0c;咱程序员要在美团送外卖&#xff0c;那还真有一番说道呢。 先说说优势哈&#xff0c;咱程序员那逻辑思维可不是盖的&#xff0c;规划送餐路线什么的&#xff0c;简直小菜一碟。就像敲代码找最优解一样&#xff0c;能迅速算出怎么送最省时间最有效率。而且咱平时…