微信网站和手机网站的区别,广州天河区房价,wordpress the 7,店铺引流的30种方法jmap 用于生成 heap dump 文件#xff0c;如果不使用这个命令#xff0c;还可以使用-XX:HeapDumpOnOutOfMemoryError参数来让虚拟机出现 OOM 的时候自动生成 dump 文件。
jmap 不仅可以生成 dump 文件#xff0c;还可以查询finalize执行队列、Java 堆的详细信息#xff0c…jmap 用于生成 heap dump 文件如果不使用这个命令还可以使用-XX:HeapDumpOnOutOfMemoryError参数来让虚拟机出现 OOM 的时候自动生成 dump 文件。
jmap 不仅可以生成 dump 文件还可以查询finalize执行队列、Java 堆的详细信息如当前使用率、当前使用的是哪种收集器等。
命令的使用格式如下。
jmap [option] LVMIDoption 参数详解
dump : 生成堆转储快照finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象heap : 显示Java堆详细信息histo : 显示堆中对象的统计信息clstats : 显示类加载器信息F : 当-dump没有响应时强制生成dump快照
选项作用-dump生成java堆转储快照格式为dump:[live,]formatb,file其中live子参数指定是否只dump出存活对象。-finalizerinfo显示在F-Queue中等待Finerlizer线程执行 finalize方法的对象只在linux/Solaries平台下有效-heap显示java堆详细信息包括使用哪种垃圾收集器、参数配置、分代状况等只在linux/Solaries平台下有效-permstat以ClassLoader 为统计口径显示永久代内存状态只在linux/Solaries平台下有效-histo显示堆中对象统计信息包括类、实例数量、合计容量-F当虚拟机进程对 -dump 选项没有响应时可使用这个选项强制生成dump快照只在linux/Solaries平台下有效
option 参数使用如下。
1、示例参数dump
-dump参数用于生成堆内存快照文件。
命令的使用格式如下。
-dump::live,formatb,filefilename pidoption 参数详解
live : 指的是活着的对象format : 表示指定的输出格式file : 表示指定的文件名pid : 表示 Java 服务进程ID
在操作系统终端输入如下命令即可查看相关信息示例如下。
$ jmap -dump:live,formatb,filedump.hprof 20094
Dumping heap to /xxx/dump.hprof ...
Heap dump file createddump.hprof这个后缀是为了后续可以直接用 MAT (Memory Anlysis Tool) 工具打开。
2、示例参数finalizerinfo
-finalizerinfo参数用于打印等待回收对象的信息。
在操作系统终端输入如下命令即可查看相关信息示例如下。
$ jmap -finalizerinfo 20094
Attaching to process ID 20094, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.202-b08
Number of objects pending for finalization: 0从日志中可以得出当前 F-QUEUE 队列中并没有等待 Finalizer 线程执行 finalizer 方法的对象。
3、示例参数heap
-heap参数用于打印 heap 的概要信息GC 使用的算法heap 的配置及 wise heap 的使用情况可以用此来判断内存目前的使用情况以及垃圾回收情况。
在操作系统终端输入如下命令即可查看相关信息示例如下。
$ jmap -heap 20094
Attaching to process ID 20094, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.202-b08using thread-local object allocation.
Mark Sweep Compact GCHeap Configuration:MinHeapFreeRatio 40MaxHeapFreeRatio 70MaxHeapSize 461373440 (440.0MB)NewSize 9764864 (9.3125MB)MaxNewSize 153747456 (146.625MB)OldSize 19595264 (18.6875MB)NewRatio 2SurvivorRatio 8MetaspaceSize 21807104 (20.796875MB)CompressedClassSpaceSize 1073741824 (1024.0MB)MaxMetaspaceSize 17592186044415 MBG1HeapRegionSize 0 (0.0MB)Heap Usage:
New Generation (Eden 1 Survivor Space):capacity 17825792 (17.0MB)used 239848 (0.22873687744140625MB)free 17585944 (16.771263122558594MB)1.345511043772978% used
Eden Space:capacity 15859712 (15.125MB)used 239848 (0.22873687744140625MB)free 15619864 (14.896263122558594MB)1.5123099334969008% used
From Space:capacity 1966080 (1.875MB)used 0 (0.0MB)free 1966080 (1.875MB)0.0% used
To Space:capacity 1966080 (1.875MB)used 0 (0.0MB)free 1966080 (1.875MB)0.0% used
tenured generation:capacity 39444480 (37.6171875MB)used 23665256 (22.568946838378906MB)free 15779224 (15.048240661621094MB)59.99636958073728% used21919 interned Strings occupying 2683112 bytes.从日志中可以很清楚的看到 Java 堆中各个区域目前的情况。
4、示例参数histo
-histo参数用于打印堆的对象统计包括对象数、内存大小等等。也可以带上live参数比如-histo[:live]表示只打印存活的对象如果不加就是查询全部对象。
在操作系统终端输入如下命令即可查看相关信息部分示例如下。
$ jmap -histo 20094num #instances #bytes class name
----------------------------------------------1: 61030 8438336 [C2: 9918 2169120 [I3: 59981 1439544 java.lang.String4: 5112 1331136 [B5: 13532 1190816 java.lang.reflect.Method6: 10071 1125192 java.lang.Class7: 32196 1030272 java.util.concurrent.ConcurrentHashMap$Node8: 9593 572904 [Ljava.lang.Object;9: 15416 493312 java.util.HashMap$Node10: 12115 484600 java.util.LinkedHashMap$Entry...其中class name列指的是对象类型部分内容详解
Bbyte Cchar Ddouble Ffloat Iint Jlong Zboolean [I表示 int[]的数组 [L类名其他数组对象
5、示例参数clstats
-clstats参数用于打印类加载器信息。
在操作系统终端输入如下命令即可查看相关信息部分示例如下。
$ jmap -clstats 20094
Attaching to process ID 20094, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.202-b08表示当前并没有相关类加载的信息。
6、示例参数F
-F参数表示强制模式。在 pid 没有响应的时候使用-dump或者-histo参数在这个模式下live子参数会无效。