java查看jvm对象个数_jmap-查看 jvm 内存对象信息
jmap 概述
命令jmap是一個多功能的命令。
它可以生成 java 程序的 dump 文件,也可以查看堆內(nèi)對象示例的統(tǒng)計信息、查看 ClassLoader 的信息以及 finalizer 隊列。
參數(shù)
option:選項參數(shù)。
pid:需要打印配置信息的進程ID。
executable:產(chǎn)生核心dump的Java可執(zhí)行文件。
core:需要打印配置信息的核心文件。
server-id 可選的唯一id,如果相同的遠程主機上運行了多臺調(diào)試服務(wù)器,用此選項參數(shù)標(biāo)識服務(wù)器。
remote server IP or hostname 遠程調(diào)試服務(wù)器的IP地址或主機名。
option
no option: 查看進程的內(nèi)存映像信息,類似 Solaris pmap 命令。
heap: 顯示Java堆詳細信息
histo[:live]: 顯示堆中對象的統(tǒng)計信息
clstats:打印類加載器信息
finalizerinfo: 顯示在F-Queue隊列等待Finalizer線程執(zhí)行finalizer方法的對象
dump::生成堆轉(zhuǎn)儲快照
F: 當(dāng)-dump沒有響應(yīng)時,使用-dump或者-histo參數(shù). 在這個模式下,live子參數(shù)無效.
help:打印幫助信息
J:指定傳遞給運行jmap的JVM的參數(shù)
查看存活對象的例子
命令
$ jmap -histo:live pid
描述:顯示堆中對象的統(tǒng)計信息
其中包括每個Java類、對象數(shù)量、內(nèi)存大小(單位:字節(jié))、完全限定的類名。打印的虛擬機內(nèi)部的類名稱將會帶有一個’*’前綴。
如果指定了live子選項,則只計算活動的對象。
實際執(zhí)行
獲取 pid
$ ps -ef | grep "java"
獲取對應(yīng)的 java 信息 pid 為 13176
執(zhí)行命令
$ jmap -histo:live 13176 | head -n 10
效果
num #instances #bytes class name
----------------------------------------------
1: 255431 27355352 [C
2: 23394 7981960 [I
3: 206158 6597056 java.util.HashMap$Node
4: 253204 6076896 java.lang.String
5: 107719 5107880 [Ljava.lang.Object;
6: 7434 4528920 [B
7: 44800 4300800 java.util.jar.JarFile$JarFileEntry
字段解釋
標(biāo)識字符
含義
B
基本類型byte
C
基本類型char
D
基本類型double
F
基本類型float
I
基本類型int
J
基本類型long
S
基本類型short
Z
基本類型boolean
V
特殊類型void
L
對象類型,以分號結(jié)尾,如Ljava/lang/Object;
參考資料
總結(jié)
以上是生活随笔為你收集整理的java查看jvm对象个数_jmap-查看 jvm 内存对象信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全面屏 iPhone、折叠屏 iPhon
- 下一篇: java hash=0报空指针_怎么报空