溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java的jmap命令怎么用

發(fā)布時(shí)間:2022-03-21 09:11:09 來(lái)源:億速云 閱讀:189 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Java的jmap命令怎么用,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

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)上使用還是有一些限制的。在沒(méi)有dbgeng.dll的Windows系統(tǒng)中,必須安裝用于Windows的調(diào)試工具才能使jinfo命令正常工作,PATH環(huán)境變量應(yīng)該包含jvm.dll的位置。

jmap命令參數(shù)

命令語(yǔ)法:

jmap [options] pid

命令參數(shù)說(shuō)明:

option:jmap命令的可選參數(shù)。如果沒(méi)有指定這個(gè)參數(shù),jinfo命令會(huì)顯示Java虛擬機(jī)進(jìn)程的內(nèi)存映像信息,如下圖:

Java的jmap命令怎么用

pid:要打印配置信息的Java虛擬機(jī)的進(jìn)程ID。

想要要獲取運(yùn)行的Java虛擬機(jī)進(jìn)程的列表,可以使用ps命令(Linux系統(tǒng)中)或tasklist命令(Windows系統(tǒng)中),如果Java虛擬機(jī)進(jìn)程沒(méi)有在單獨(dú)的docker實(shí)例中運(yùn)行,可以使用jps命令。

option都有哪些參數(shù)呢?我們來(lái)看一下。

-heap

顯示Java堆的如下信息:

  • 被指定的垃圾回收算法的信息,包括垃圾回收算法的名稱(chēng)和垃圾回收算法的詳細(xì)信息。

  • 堆的配置信息,可能是由命令行選項(xiàng)指定,或者由Java虛擬機(jī)根據(jù)服務(wù)器配置選擇的。

  • 堆的內(nèi)存空間使用信息,包括分代情況,每個(gè)代的總?cè)萘?、已使用?nèi)存、可使用內(nèi)存。如果某一代被繼續(xù)細(xì)分(例如,年輕代),則包含細(xì)分的空間的內(nèi)存使用信息。

比如:

Java的jmap命令怎么用

-histo[:live]

顯示Java堆中對(duì)象的統(tǒng)計(jì)信息,包括:對(duì)象數(shù)量、占用內(nèi)存大小(單位:字節(jié))和類(lèi)的完全限定名。比如:

Java的jmap命令怎么用

要獲得某個(gè)對(duì)象的大小,可以將其總大小除以該對(duì)象類(lèi)型的數(shù)量。如果指定了live參數(shù),則只計(jì)算活動(dòng)的對(duì)象。比如:

Java的jmap命令怎么用

-clstats

顯示Java堆中元空間的類(lèi)加載器的統(tǒng)計(jì)信息,包括:

class_loader:當(dāng)Java虛擬機(jī)運(yùn)行時(shí),類(lèi)加載器對(duì)象的地址
classes:已加載類(lèi)的數(shù)量
bytes:該類(lèi)加載器加載的所有類(lèi)的元數(shù)據(jù)所占的字節(jié)數(shù)
parent_loader:父類(lèi)加載器對(duì)象的地址,如果沒(méi)有顯示null
alive:是否存活的標(biāo)識(shí),表示類(lèi)加載器對(duì)象是否將被垃圾回收。
type:該類(lèi)加載器的類(lèi)名。

比如:

Java的jmap命令怎么用

-finalizerinfo

顯示在F-Queue中等待Finalizer線(xiàn)程執(zhí)行finalize方法的對(duì)象。比如:

Java的jmap命令怎么用

-dump:[live,]format=b,file=

生成Java虛擬機(jī)的堆轉(zhuǎn)儲(chǔ)快照dump文件。具體說(shuō)明如下:

  • live參數(shù)是可選的,如果指定,則只轉(zhuǎn)儲(chǔ)堆中的活動(dòng)對(duì)象;如果沒(méi)有指定,則轉(zhuǎn)儲(chǔ)堆中的所有對(duì)象。

  • format=b表示以hprof二進(jìn)制格式轉(zhuǎn)儲(chǔ)Java堆的內(nèi)存。

  • file=<filename>用于指定快照dump文件的文件名。

比如:

Java的jmap命令怎么用

-F

強(qiáng)制模式。如果指定的pid沒(méi)有響應(yīng),可以配合-dump-histo一起使用。此模式下,不支持live參數(shù)。比如:

Java的jmap命令怎么用

-h 和 -help

顯示jinfo命令的幫助信息。

關(guān)于“Java的jmap命令怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI