Java的jmap命令的具體使用
jmap命令簡(jiǎn)介
jmap(Java Virtual Machine Memory Map)是JDK提供的一個(gè)可以生成Java虛擬機(jī)的堆轉(zhuǎn)儲(chǔ)快照dump文件的命令行工具。除此以外,jmap命令還可以查看finalize執(zhí)行隊(duì)列、Java堆和方法區(qū)的詳細(xì)信息,比如空間使用率、當(dāng)前使用的什么垃圾回收器、分代情況等等。
和jinfo命令一樣,在Windows系統(tǒng)上使用還是有一些限制的。在沒有dbgeng.dll
的Windows系統(tǒng)中,必須安裝用于Windows的調(diào)試工具才能使jinfo命令正常工作,PATH環(huán)境變量應(yīng)該包含jvm.dll的位置。
jmap命令參數(shù)
命令語法:
jmap [options] pid
命令參數(shù)說明:
option
:jmap命令的可選參數(shù)。如果沒有指定這個(gè)參數(shù),jinfo命令會(huì)顯示Java虛擬機(jī)進(jìn)程的內(nèi)存映像信息,如下圖:
pid
:要打印配置信息的Java虛擬機(jī)的進(jìn)程ID。
想要要獲取運(yùn)行的Java虛擬機(jī)進(jìn)程的列表,可以使用ps命令(Linux系統(tǒng)中)或tasklist命令(Windows系統(tǒng)中),如果Java虛擬機(jī)進(jìn)程沒有在單獨(dú)的docker實(shí)例中運(yùn)行,可以使用jps命令。
option
都有哪些參數(shù)呢?我們來看一下。
-heap
顯示Java堆的如下信息:
- 被指定的垃圾回收算法的信息,包括垃圾回收算法的名稱和垃圾回收算法的詳細(xì)信息。
- 堆的配置信息,可能是由命令行選項(xiàng)指定,或者由Java虛擬機(jī)根據(jù)服務(wù)器配置選擇的。
- 堆的內(nèi)存空間使用信息,包括分代情況,每個(gè)代的總?cè)萘?、已使用?nèi)存、可使用內(nèi)存。如果某一代被繼續(xù)細(xì)分(例如,年輕代),則包含細(xì)分的空間的內(nèi)存使用信息。
比如:
-histo[:live]
顯示Java堆中對(duì)象的統(tǒng)計(jì)信息,包括:對(duì)象數(shù)量、占用內(nèi)存大小(單位:字節(jié))和類的完全限定名。比如:
要獲得某個(gè)對(duì)象的大小,可以將其總大小除以該對(duì)象類型的數(shù)量。如果指定了live
參數(shù),則只計(jì)算活動(dòng)的對(duì)象。比如:
-clstats
顯示Java堆中元空間的類加載器的統(tǒng)計(jì)信息,包括:
class_loader:當(dāng)Java虛擬機(jī)運(yùn)行時(shí),類加載器對(duì)象的地址
classes:已加載類的數(shù)量
bytes:該類加載器加載的所有類的元數(shù)據(jù)所占的字節(jié)數(shù)
parent_loader:父類加載器對(duì)象的地址,如果沒有顯示null
。
alive:是否存活的標(biāo)識(shí),表示類加載器對(duì)象是否將被垃圾回收。
type:該類加載器的類名。
比如:
-finalizerinfo
顯示在F-Queue中等待Finalizer線程執(zhí)行finalize方法的對(duì)象。比如:
-dump:[live,]format=b,file=
生成Java虛擬機(jī)的堆轉(zhuǎn)儲(chǔ)快照dump文件。具體說明如下:
live
參數(shù)是可選的,如果指定,則只轉(zhuǎn)儲(chǔ)堆中的活動(dòng)對(duì)象;如果沒有指定,則轉(zhuǎn)儲(chǔ)堆中的所有對(duì)象。format=b
表示以hprof二進(jìn)制格式轉(zhuǎn)儲(chǔ)Java堆的內(nèi)存。file=<filename>
用于指定快照dump文件的文件名。
比如:
-F
強(qiáng)制模式。如果指定的pid沒有響應(yīng),可以配合-dump
或-histo
一起使用。此模式下,不支持live參數(shù)。比如:
-h 和 -help
顯示jinfo命令的幫助信息。
到此這篇關(guān)于Java的jmap命令的具體使用的文章就介紹到這了,更多相關(guān)Java jmap命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot中定制異常頁面的實(shí)現(xiàn)方法
這篇文章主要介紹了SpringBoot中定制異常頁面的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09java中如何對(duì)arrayList按數(shù)字大小逆序排序
這篇文章主要介紹了java中如何對(duì)arrayList按數(shù)字大小逆序排序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之2-3-4樹
這篇文章主要為大家介紹了Java數(shù)據(jù)結(jié)構(gòu)和算法之2-3-4樹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01spring boot整合netty的實(shí)現(xiàn)方法
這篇文章主要介紹了spring boot整合netty的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Spring?Boot?整合?Fisco?Bcos的案例分析(區(qū)塊鏈)
本篇文章介紹的?Spring?Boot?整合?Fisco?Bcos的案例,是在阿里云服務(wù)器上部署驗(yàn)證的。大家可根據(jù)自己的電腦環(huán)境,對(duì)比該案例進(jìn)行開發(fā)即可,具體案例代碼跟隨小編一起看看吧2022-01-01java GUI編程之布局控制器(Layout)實(shí)例分析
這篇文章主要介紹了java GUI編程之布局控制器(Layout),結(jié)合實(shí)例形式分析了java GUI編程中布局控制器(Layout)具體功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-01-01