JVMjmap命令详解
Posted kiko2014551511
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVMjmap命令详解相关的知识,希望对你有一定的参考价值。
1、jmap命令概述
Jmap是一个可以输出内存中所有对象的工具。可以将JVM中的heap(堆),以二进制形式输出成文本。打印出某个java进程内存内所有‘对象‘’的情况。
2、基本命令
pid:java进程号
1、jmap -heap pid : 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况
也可以将堆信息输出到文件中。jmap -heap pid >heap.txt
Attaching to process ID 6349, please wait... Debugger attached successfully. Server compiler detected. JVM version is 25.212-b04 using thread-local object allocation. Parallel GC with 4 thread(s) Heap Configuration: MinHeapFreeRatio = 0 【最小堆使用比例】 MaxHeapFreeRatio = 100 【最大堆可用比例】 MaxHeapSize = 268435456 (256.0MB) 【最大堆空间大小】 NewSize = 44564480 (42.5MB) 【新生代分配大小】 MaxNewSize = 89128960 (85.0MB) 【新生代最大可分配大小】 OldSize = 89653248 (85.5MB) 【老年代大小】 NewRatio = 2 【新生代占的比例】 SurvivorRatio = 8 【新生代与suvivor的比例】 MetaspaceSize = 21807104 (20.796875MB) CompressedClassSpaceSize = 1073741824 (1024.0MB) MaxMetaspaceSize = 17592186044415 MB G1HeapRegionSize = 0 (0.0MB) Heap Usage: 【堆使用情况】 PS Young Generation 【新生代】 Eden Space: 【Eden区】 capacity = 87031808 (83.0MB) 【Eden区容量】 used = 66957240 (63.85540008544922MB) 【Eden区使用量】 free = 20074568 (19.14459991455078MB) 【Eden区当前剩余容量】 76.93421697042075% used 【Eden区使用情况百分比】 From Space: 【From survivor区】 capacity = 1048576 (1.0MB) 【From survivor区容量】 used = 278544 (0.2656402587890625MB) 【From survivor区已使用量】 free = 770032 (0.7343597412109375MB) 【From survivor区剩余容量】 26.56402587890625% used 【From survivor区使用比例】 To Space: 【To survivor区】 capacity = 1048576 (1.0MB) 【To survivor区容量】 used = 0 (0.0MB) 【To survivor区使用量】 free = 1048576 (1.0MB) 【To survivor区剩余容量】 0.0% used 【To survivor区使用比例】 PS Old Generation 【老年代】 capacity = 179306496 (171.0MB) 【老年代容量】 used = 106356544 (101.42950439453125MB) 【老年代已使用容量】 free = 72949952 (69.57049560546875MB) 【老年代剩余容量】 59.31549964592471% used 【老年代使用比例】 30237 interned Strings occupying 3151392 bytes.
2、jmap -histo[:live] pid :打印每个class的实例数目,内存占用,类全名信息。VM的内部类名字开头会加上前缀“*”。如果live子参数加上后,只统计活的对象数量.
也可以将信息输出到文件中
jmap -histo 6349 >histo.txt
jmap -histo:live 6349 >histo_live.txt
说明: instances(实例数)、bytes(占用的字节大小)、 class name(类名)。它基本是按照使用使用大小逆序排列的。
instance 是对象的实例个数
bytes 是总占用的字节数
class name 对应的就是 Class 文件里的 class 的标识
B 代表 bytes
C 代表 char
D 代表 double
F 代表 float
I 代表 int
J 代表 long
Z 代表 boolean
前边有 [ 代表数组 [I 表示 int[]
对象用 [L+ 类名表示
以上是关于JVMjmap命令详解的主要内容,如果未能解决你的问题,请参考以下文章
Selenium JavascriptExecutor 详解