目录

一、jmap:导出内存映像文件&内存使用情况

二、导出dump堆转储快照文件

三、显示堆内存相关信息

四、其它作用

五、小结


一、jmap:导出内存映像文件&内存使用情况

jmap(JVM Memory Map):一方面是获取dump文件(堆转储快照文件,二进制文件),还可以获取目标Java进程的内存相关信息,包括Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。开发人员可以在控制台中输入命令“jmap -help”查阅jmap工具的具体使用方式和一些标准选项配置。

C:\Users\WSH>jmap -h
Usage:jmap [option] <pid>(to connect to running process)jmap [option] <executable <core>(to connect to a core file)jmap [option] [server_id@]<remote server IP or hostname>(to connect to remote debug server)where <option> is one of:<none>               to print same info as Solaris pmap-heap                to print java heap summary-histo[:live]        to print histogram of java object heap; if the "live"suboption is specified, only count live objects-clstats             to print class loader statistics-finalizerinfo       to print information on objects awaiting finalization-dump:<dump-options> to dump java heap in hprof binary formatdump-options:live         dump only live objects; if not specified,all objects in the heap are dumped.format=b     binary formatfile=<file>  dump heap to <file>Example: jmap -dump:live,format=b,file=heap.bin <pid>-F                   force. Use with -dump:<dump-options> <pid> or -histoto force a heap dump or histogram when <pid> does notrespond. The "live" suboption is not supportedin this mode.-h | -help           to print this help message-J<flag>             to pass <flag> directly to the runtime system

官方帮助文档:jmap

基本使用语法为:

  • jmap [option] <pid>
  • jmap [option] <executable <core>
  • jmap [option] [server_id@] <remote server IP or hostname>

option参数说明如下:

选项

作用

-dump

生成dump文件(Java堆转储快照),-dump:live只保存堆中的存活对象

-heap

输出整个堆空间的详细信息,包括GC的使用、堆配置信息,以及内存的使用信息等

-histo

输出堆空间中对象的统计信息,包括类、实例数量和合计容量,-histo:live只统计堆中的存活对象

-J <flag>

传递参数给jmap启动的jvm

-finalizerinfo

显示在F-Queue中等待Finalizer线程执行finalize方法的对象,仅linux/solaris平台有效

-permstat

以ClassLoader为统计口径输出永久代的内存状态信息,仅linux/solaris平台有效

-F

当虚拟机进程对-dump选项没有任何响应时,强制执行生成dump文件,仅linux/solaris平台有效

说明:这些参数和linux下输入显示的命令多少会有不同,包括也受jdk版本的影响。

二、导出dump堆转储快照文件

dump堆转储快照文件主要有手动和自动两种方式:

【a】手动方式

手动dump出堆转储快照文件:如下两个选择其一即可

//dump出所有对象
> jmap -dump:format=b,file=<filename.hprof> <pid>
//只dump出存活对象(live)
> jmap -dump:live,format=b,file=<filename.hprof> <pid>

示例:

public class GCTest {public static void main(String[] args) throws ClassNotFoundException {List<byte[]> list = new ArrayList<>();for (int i = 0; i < 1000; i++) {byte[] arr = new byte[1024 * 100];list.add(arr);try {Thread.sleep(120);} catch (InterruptedException e) {e.printStackTrace();}}}
}

设置JVM参数并启动程序:

-Xms60m -Xmx60m -XX:SurvivorRatio=8

手动dump出堆转储快照文件:

C:\Users\WSH>jmap -dump:format=b,file=d:\1.hprof 14904
Dumping heap to D:\1.hprof ...
Heap dump file createdC:\Users\WSH>jmap -dump:format=b,file=d:\2.hprof 14904
Dumping heap to D:\2.hprof ...
Heap dump file createdC:\Users\WSH>jmap -dump:format=b,file=d:\3.hprof 14904
Dumping heap to D:\3.hprof ...
Heap dump file created##########只dump存活的对象###########
C:\Users\WSH>jmap -dump:live,format=b,file=d:\4.hprof 14904
Dumping heap to D:\4.hprof ...
Heap dump file created

如下图,即为生成的堆转储快照文件,可借助一些可视化分析工具打开,后面我们会介绍。

【b】自动方式

  • -XX:+HeapDumpOnOutOfMemoryError:在堆溢出的时候可以储存快照;
  • -XX:HeapDumpPath=d:/dumps/:导出内存快照时保存的路径;

在启动程序的时候指定上述两个参数即可,如下图: 

三、显示堆内存相关信息

【a】jmap -heap 928:查看堆各区域的使用情况

C:\Users\WSH>jmap -heap 928
Attaching to process ID 928, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.291-b10using thread-local object allocation.
Parallel GC with 10 thread(s)Heap Configuration:MinHeapFreeRatio         = 0MaxHeapFreeRatio         = 100MaxHeapSize              = 62914560 (60.0MB)NewSize                  = 20971520 (20.0MB)MaxNewSize               = 20971520 (20.0MB)OldSize                  = 41943040 (40.0MB)NewRatio                 = 2SurvivorRatio            = 8MetaspaceSize            = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize         = 17592186044415 MBG1HeapRegionSize         = 0 (0.0MB)Heap Usage:
PS Young Generation
Eden Space:capacity = 15728640 (15.0MB)used     = 1623088 (1.5478973388671875MB)free     = 14105552 (13.452102661132812MB)10.319315592447916% used
From Space:capacity = 2621440 (2.5MB)used     = 2589008 (2.4690704345703125MB)free     = 32432 (0.0309295654296875MB)98.7628173828125% used
To Space:capacity = 2621440 (2.5MB)used     = 0 (0.0MB)free     = 2621440 (2.5MB)0.0% used
PS Old Generationcapacity = 41943040 (40.0MB)used     = 10146216 (9.676185607910156MB)free     = 31796824 (30.323814392089844MB)24.19046401977539% used3182 interned Strings occupying 260960 bytes.

【b】jmap -histo 928:查看实例柱数状图

C:\Users\WSH>jmap -histo 928num     #instances         #bytes  class name
----------------------------------------------1:           775       31478280  [B2:          5082         526064  [C3:           169         418184  [I4:          4933         118392  java.lang.String5:           717          82248  java.lang.Class6:           681          47240  [Ljava.lang.Object;7:           791          31640  java.util.TreeMap$Entry8:           720          28800  java.util.LinkedHashMap$Entry9:           427          18984  [Ljava.lang.String;10:           521          16672  java.util.HashMap$Node11:           179          11456  java.net.URL12:            26          10720  [Ljava.util.HashMap$Node;13:           113           8136  java.lang.reflect.Field14:           211           5064  java.util.LinkedList$Node15:            52           4992  java.util.jar.JarFile$JarFileEntry16:            88           4928  sun.misc.URLClassPath$JarLoader17:            61           4880  [Ljava.util.WeakHashMap$Entry;18:           115           4600  java.lang.ref.Finalizer19:           110           4400  java.lang.ref.SoftReference20:           256           4096  java.lang.Integer21:           123           3936  java.util.Hashtable$Entry22:            58           3712  java.util.jar.JarFile23:           111           3552  java.util.concurrent.ConcurrentHashMap$Node24:           107           3424  java.util.LinkedList25:            61           3416  sun.nio.cs.UTF_8$Encoder26:           133           3192  java.io.ExpiringCache$Entry27:             8           3008  java.lang.Thread28:            61           2928  java.util.WeakHashMap29:            48           2304  java.util.zip.Inflater30:            56           2240  sun.nio.cs.UTF_8$Decoder31:            68           2176  java.lang.ref.ReferenceQueue32:            26           2080  java.lang.reflect.Constructor33:            16           2048  [Ljava.util.concurrent.ConcurrentHashMap$Node;34:            39           1872  sun.util.locale.LocaleObjectCache$CacheEntry35:            58           1856  java.util.zip.ZipCoder36:            36           1728  java.util.HashMap37:             1           1568  [[B38:            37           1480  java.io.ObjectStreamField39:            26           1456  java.lang.Class$ReflectionData40:            89           1424  java.lang.Object41:            58           1392  java.util.ArrayDeque42:            20           1280  java.util.concurrent.ConcurrentHashMap43:             9           1184  [Ljava.util.Hashtable$Entry;44:            48           1152  java.util.zip.ZStreamRef45:            70           1120  java.lang.ref.ReferenceQueue$Lock46:             2           1064  [Ljava.lang.invoke.MethodHandle;47:             1           1040  [Ljava.lang.Integer;48:             1           1040  [[C49:            19            760  sun.util.locale.BaseLocale$Key50:            11            648  [Ljava.lang.reflect.Field;51:             8            640  [S52:            19            608  java.io.File53:            19            608  java.util.Locale54:            19            608  sun.util.locale.BaseLocale55:            13            520  java.security.AccessControlContext56:            21            504  java.util.jar.Attributes$Name57:            19            456  java.util.Locale$LocaleKey58:            18            432  sun.misc.MetaIndex59:            13            392  [Ljava.io.ObjectStreamField;60:             1            384  com.intellij.rt.execution.application.AppMainV2$161:             1            384  java.lang.ref.Finalizer$FinalizerThread62:             6            384  java.nio.DirectByteBuffer63:             1            376  java.lang.ref.Reference$ReferenceHandler64:            18            352  [Ljava.lang.Class;65:             6            336  java.nio.DirectLongBufferU66:            10            320  java.lang.OutOfMemoryError67:             3            312  [D68:             2            312  [J69:            13            312  [Ljava.lang.reflect.Constructor;70:            13            312  sun.reflect.NativeConstructorAccessorImpl71:            12            288  java.util.ArrayList72:             5            280  sun.util.calendar.ZoneInfo73:             3            264  java.lang.reflect.Method74:            11            264  java.net.StandardSocketOptions$StdSocketOption75:             8            256  java.util.Vector76:             3            240  [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;77:             5            240  java.util.Hashtable78:             7            224  java.lang.ThreadLocal$ThreadLocalMap$Entry79:             4            224  java.util.LinkedHashMap80:            13            208  sun.reflect.DelegatingConstructorAccessorImpl81:             5            200  java.security.ProtectionDomain82:             5            200  java.util.WeakHashMap$Entry83:             6            192  java.nio.file.attribute.FileTime84:             4            192  java.util.Properties85:             4            192  java.util.TreeMap86:             2            160  [[Ljava.lang.String;87:             4            160  java.io.FileDescriptor88:             4            160  java.lang.ClassLoader$NativeLibrary89:             5            160  java.security.CodeSource90:             5            160  sun.util.locale.provider.LocaleProviderAdapter$Type91:             3            144  java.nio.HeapByteBuffer92:             6            144  sun.misc.PerfCounter93:             3            144  sun.misc.URLClassPath94:             2            128  java.io.ExpiringCache$195:             4            128  java.util.Stack96:             2            128  sun.nio.cs.ext.DoubleByte$Encoder97:             1            120  java.net.SocksSocketImpl98:             5            120  java.util.Collections$UnmodifiableRandomAccessList99:             5            120  sun.misc.FloatingDecimal$PreparedASCIIToBinaryBuffer100:             2            112  java.lang.Package101:             7            112  java.util.HashSet102:             2            112  java.util.ResourceBundle$CacheKey103:             2            112  sun.nio.cs.ext.DoubleByte$Decoder104:             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:             4             96  jdk.net.ExtendedSocketOptions$ExtSocketOption111:             1             96  sun.misc.Launcher$AppClassLoader112:             3             96  sun.net.spi.DefaultProxySelector$NonProxyInfo113:             2             96  sun.nio.cs.StreamEncoder114:             1             88  sun.misc.Launcher$ExtClassLoader115:             5             80  [Ljava.security.Principal;116:             2             80  java.io.BufferedWriter117:             2             80  java.io.ExpiringCache118:             5             80  java.security.ProtectionDomain$Key119:             2             80  sun.misc.FloatingDecimal$BinaryToASCIIBuffer120:             3             72  java.lang.ThreadLocal$ThreadLocalMap121:             3             72  java.net.Proxy$Type122:             3             72  java.util.Arrays$ArrayList123:             1             72  java.util.ResourceBundle$RBClassLoader124:             3             72  java.util.concurrent.atomic.AtomicLong125:             3             72  sun.misc.FloatingDecimal$ExceptionalBinaryToASCIIBuffer126:             1             72  sun.util.locale.provider.JRELocaleProviderAdapter127:             1             64  [F128:             2             64  [Ljava.lang.Thread;129:             2             64  java.io.FileOutputStream130:             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:             2             48  [Ljava.lang.reflect.Method;141:             1             48  [Ljava.util.concurrent.TimeUnit;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  sun.misc.JarIndex156:             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.locale.provider.LocaleResources$ResourceReference162:             1             48  sun.util.resources.TimeZoneNames163:             1             48  sun.util.resources.en.TimeZoneNames_en164:             1             40  [Lsun.util.locale.provider.LocaleProviderAdapter$Type;165:             1             40  java.io.BufferedInputStream166:             1             40  java.util.ResourceBundle$1167:             1             40  sun.nio.cs.StandardCharsets$Aliases168:             1             40  sun.nio.cs.StandardCharsets$Cache169:             1             40  sun.nio.cs.StandardCharsets$Classes170:             1             40  sun.nio.cs.ext.ExtendedCharsets171:             1             32  [Ljava.lang.OutOfMemoryError;172:             2             32  [Ljava.lang.StackTraceElement;173:             1             32  [Ljava.lang.ThreadGroup;174:             1             32  [Ljava.net.Proxy$Type;175:             1             32  java.io.FileInputStream176:             1             32  java.io.WinNTFileSystem177:             1             32  java.lang.ArithmeticException178:             2             32  java.lang.Boolean179:             1             32  java.lang.NullPointerException180:             1             32  java.net.InetAddress$InetAddressHolder181:             1             32  java.net.Socket182:             2             32  java.nio.ByteOrder183:             2             32  java.util.LinkedHashMap$LinkedKeySet184:             2             32  java.util.concurrent.atomic.AtomicInteger185:             1             32  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl186:             1             32  jdk.net.ExtendedSocketOptions$1187:             1             32  sun.instrument.InstrumentationImpl188:             1             32  sun.nio.cs.StandardCharsets189:             1             32  sun.util.locale.provider.LocaleResources190:             1             32  sun.util.locale.provider.LocaleServiceProviderPool191:             1             24  [Ljava.io.File$PathStatus;192:             1             24  [Ljava.lang.ClassValue$Entry;193:             1             24  [Ljava.net.InetAddress$Cache$Type;194:             1             24  [Ljava.security.ProtectionDomain;195:             1             24  [Lsun.launcher.LauncherHelper;196:             1             24  java.io.InputStreamReader197:             1             24  java.lang.ClassValue$Version198:             1             24  java.lang.StringBuilder199:             1             24  java.lang.invoke.MethodHandleImpl$4200:             1             24  java.lang.reflect.ReflectPermission201:             1             24  java.net.Inet4Address202:             1             24  java.net.Inet6AddressImpl203:             1             24  java.net.Proxy204:             1             24  java.util.BitSet205:             1             24  java.util.Collections$EmptyMap206:             1             24  java.util.Collections$SetFromMap207:             1             24  java.util.Collections$SynchronizedSet208:             1             24  java.util.Locale$Cache209:             1             24  java.util.ResourceBundle$Control$CandidateListCache210:             1             24  java.util.concurrent.TimeUnit$1211:             1             24  java.util.concurrent.TimeUnit$2212:             1             24  java.util.concurrent.TimeUnit$3213:             1             24  java.util.concurrent.TimeUnit$4214:             1             24  java.util.concurrent.TimeUnit$5215:             1             24  java.util.concurrent.TimeUnit$6216:             1             24  java.util.concurrent.TimeUnit$7217:             1             24  java.util.jar.Manifest218:             1             24  sun.instrument.TransformerManager219:             1             24  sun.launcher.LauncherHelper220:             1             24  sun.misc.URLClassPath$FileLoader221:             1             24  sun.nio.cs.ISO_8859_1222:             1             24  sun.nio.cs.ThreadLocalCoders$1223:             1             24  sun.nio.cs.ThreadLocalCoders$2224:             1             24  sun.nio.cs.US_ASCII225:             1             24  sun.nio.cs.UTF_16226:             1             24  sun.nio.cs.UTF_16BE227:             1             24  sun.nio.cs.UTF_16LE228:             1             24  sun.nio.cs.UTF_8229:             1             24  sun.nio.cs.ext.GBK230:             1             24  sun.reflect.NativeMethodAccessorImpl231:             1             24  sun.util.locale.BaseLocale$Cache232:             1             24  sun.util.locale.provider.TimeZoneNameProviderImpl233:             1             16  [Ljava.lang.Throwable;234:             1             16  [Ljava.security.cert.Certificate;235:             1             16  [Lsun.instrument.TransformerManager$TransformerInfo;236:             1             16  java.io.FileDescriptor$1237:             1             16  java.lang.CharacterDataLatin1238:             1             16  java.lang.ClassValue$Identity239:             1             16  java.lang.Runtime240:             1             16  java.lang.String$CaseInsensitiveComparator241:             1             16  java.lang.System$2242:             1             16  java.lang.Terminator$1243:             1             16  java.lang.invoke.MemberName$Factory244:             1             16  java.lang.invoke.MethodHandleImpl$2245:             1             16  java.lang.invoke.MethodHandleImpl$3246:             1             16  java.lang.ref.Reference$1247:             1             16  java.lang.ref.Reference$Lock248:             1             16  java.lang.reflect.ReflectAccess249:             1             16  java.net.InetAddress$2250:             1             16  java.net.URLClassLoader$7251:             1             16  java.nio.Bits$1252:             1             16  java.nio.charset.CoderResult$1253:             1             16  java.nio.charset.CoderResult$2254:             1             16  java.security.ProtectionDomain$2255:             1             16  java.security.ProtectionDomain$JavaSecurityAccessImpl256:             1             16  java.util.Collections$EmptyIterator257:             1             16  java.util.Collections$EmptyList258:             1             16  java.util.Collections$EmptySet259:             1             16  java.util.Hashtable$EntrySet260:             1             16  java.util.ResourceBundle$Control261:             1             16  java.util.WeakHashMap$KeySet262:             1             16  java.util.concurrent.atomic.AtomicBoolean263:             1             16  java.util.jar.Attributes264:             1             16  java.util.jar.JavaUtilJarAccessImpl265:             1             16  java.util.zip.ZipFile$1266:             1             16  jdk.net.ExtendedSocketOptions$PlatformSocketOptions267:             1             16  sun.misc.ASCIICaseInsensitiveComparator268:             1             16  sun.misc.FloatingDecimal$1269:             1             16  sun.misc.Launcher270:             1             16  sun.misc.Launcher$Factory271:             1             16  sun.misc.Perf272:             1             16  sun.misc.Unsafe273:             1             16  sun.net.spi.DefaultProxySelector274:             1             16  sun.net.www.protocol.file.Handler275:             1             16  sun.reflect.DelegatingMethodAccessorImpl276:             1             16  sun.reflect.ReflectionFactory277:             1             16  sun.util.calendar.Gregorian278:             1             16  sun.util.locale.provider.AuxLocaleProviderAdapter$NullProvider279:             1             16  sun.util.locale.provider.SPILocaleProviderAdapter280:             1             16  sun.util.locale.provider.TimeZoneNameUtility$TimeZoneNameGetter281:             1             16  sun.util.resources.LocaleData282:             1             16  sun.util.resources.LocaleData$LocaleDataResourceBundleControl
Total         18064       32910960

四、其它作用

jmap -permstat 15144:查看系统的ClassLoader信息;

jmap -finalizerinfo 15144:查看堆积在finalizer队列中的对象;

注意,上述两个参数仅在linux/solaris平台有效。

五、小结

由于jmap将访问堆中的所有对象,为了保证在此过程中不被应用线程干扰,jmap需要借助安全点机制,让所有线程停留在不改变堆中数据的状态。也就是说,由jmap导出的堆快照必定是安全点位置的,这可能导致基于该堆快照的分析结果存在偏差。

举个例子,假设在编译生成的机器码中,某些对象的生命周期在两个安全点之间,那么:live选项将无法探知到这些对象。

另外,如果某个线程长时间无法跑到安全点,jmap将一直等下去。与前面讲的jstat则不同,垃圾回收器会主动将jstat所需要的摘要数据保存至固定位置,只需直接读取即可

JVM监控及诊断工具命令行篇之jmap相关推荐

  1. JVM 学习笔记二十五、JVM监控及诊断工具-命令行篇

    二十五.JVM监控及诊断工具-命令行篇 1.概述 性能诊断是软件工程师在日常工作中经常面对和解决的问题,在用户体验至上的今天,解决好应用软件的性能问题能带来非常大的收益. Java作为最流行的编程语言 ...

  2. 14、JVM监控及诊断工具-命令行篇

    文章目录 第1章.概述 1.简单命令行工具 第2章.jps:查看正在运行的Java进程 1.基本情况 2.基本语法 [1]options参数 [2]hostid参数 第3章.jstat:查看JVM统计 ...

  3. JVM监控及诊断工具命令行篇之jps

    目录 一.概述 二.jps:查看正在运行的Java进程 一.概述 性能诊断是软件工程师在日常工作中需要经常面对和解决的问题,在用户体验至上的今天,解决好应用的性能问题能带来非常大的收益. Java 作 ...

  4. JVM监控及诊断工具-命令行篇一

    1 jps 基本概述 jps(java process status),用于查看正在运行的java虚拟机进程,会显示指定系统内所有的HotSpot虚拟机进程(查看虚拟机进程信息).这里说明一下,对于本 ...

  5. JVM学习笔记之-JVM性能监控-JVM监控及诊断工具-命令行方式

    性能优化的步骤 第1步(发现问题):性能监控 一种以非强行或者入侵方式收集或查看应用运营性能数据的活动. 监控通常是指一种在生产.质量评估或者开发环境下实施的带有预防或主动性的活动. 当应用相关干系人 ...

  6. 尚硅谷JVM下篇:性能监控与调优篇_02_JVM监控及诊断工具-命令行篇

    文章目录 1-概述 概述 简单命令行工具 2-jps:查看正在运行的Java进程 基本情况 基本语法: options参数 hostid参数 3-jstat:查看JVM统计信息 基本信息 基本语法 o ...

  7. JVM监控及诊断工具之GUI篇

    目录 工具概述 图形化综合诊断工具 jConsole 基本概述 启动 三种连接方式 Visual VM 基本概述 插件的安装 连接方式 基本使用 eclipse MAT 基本概述 获取堆dump文件 ...

  8. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

  9. JVM监控及诊断工具-GUI篇

    3.JVM监控及诊断工具-GUI篇 一.工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系.各方 ...

  10. 20.JVM监控以及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 20. JVM监控及诊断工具-GUI篇 20.1. 工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相 ...

最新文章

  1. 四级嵌入式系统开发工程师-计算题题库
  2. 架构漫谈:我心中的架构
  3. ALV标准过滤功能失效
  4. 【存储知识学习】第十章- 存储架构演进过程《大话存储》阅读笔记
  5. CSS 盒子模型(Box model)中的 padding 与 margin
  6. 华尔街英语学习软件_华尔街英语核心课程功能升级 让学员学习之旅更高效
  7. .NET Core IdentityServer4实战 第Ⅳ章-集成密码登陆模式
  8. JVM体系结构与工作方式
  9. 特斯拉将美国政府告了:要求停止对华关税并退款!
  10. jquery城市选择案例
  11. 如何设置电脑自动锁屏_MIUI第415期:新增智能显示锁屏通知、状态栏数字电量外显...
  12. Win11怎么关闭开机自启动软件
  13. golang实现人民币小写转大写
  14. Sequence contains more than one matching element
  15. 第144章 SQL函数 TO_DATE(二)
  16. 这就是爱,说也说不清楚
  17. Android APN设置 获取APN列表
  18. 利用matlab绘制系统开环幅频渐进特性曲线(附详细注释)
  19. python展示两幅图_Tkinter,并排显示两幅图像
  20. SRPG Studio 教程(一) 创建游戏及引用素材

热门文章

  1. 多模块顺序_广东省考行测时间如何分配?答题顺序的建议?
  2. 自动驾驶 6-1: 横向车辆控制介绍 Lesson 1: Introduction to Lateral Vehicle Control
  3. TensorFlow by Google CNN卷积神经网络 Machine Learning Foundations: Ep #3 - Convolutions and pooling
  4. ndarray负值统一置0,正数不变
  5. php soapclient 超时,PHP SoapClient超时
  6. cacheable中的condition和unless
  7. hdu acm 1010
  8. Hadoop2.4.1(QJM HA)+HBASE0.98 双MASTER问题分析
  9. 在linux centos中加入中文输入法
  10. 均匀带电直线外一点的场强