java jmap jc_利用jmap命令查看JVM内存使用详情
介紹
打印出某個java進程(使用pid)內(nèi)存內(nèi)的,所有‘對象’的情況(如:產(chǎn)生那些對象,及其數(shù)量)。它的用途是為了展示java進程的內(nèi)存映射信息,或者堆內(nèi)存詳情。
可以輸出所有內(nèi)存中對象的工具,甚至可以將VM 中的heap,以二進制輸出成文本。
jmap命令:
jmap [option]
(to connect to running process) 連接到正在運行的進程
jmap [option]
(to connect to a core file) 連接到核心文件
jmap [option] [server_id@]
(to connect to remote debug server) 連接到遠(yuǎn)程調(diào)試服務(wù)
參數(shù)說明
pid: 目標(biāo)進程的PID,進程編號,可以采用ps -ef | grep java 查看java進程的PID;
executable: 產(chǎn)生core dump的java可執(zhí)行程序;
core: 將被打印信息的core dump文件;
remote-hostname-or-IP: 遠(yuǎn)程debug服務(wù)的主機名或ip;
server-id: 唯一id,假如一臺主機上多個遠(yuǎn)程debug服務(wù);
如果使用不帶選項參數(shù)的jmap打印共享對象映射,將會打印目標(biāo)虛擬機中加載的每個共享對象的起始地址、映射大小以及共享對象文件的路徑全稱。
option參數(shù)使用
-finalizerinfo 打印正等候回收的對象的信息.
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情況.
-histo[:live] 打印每個class的實例數(shù)目,內(nèi)存占用,類全名信息. VM的內(nèi)部類名字開頭會加上前綴”*”. 如果live子參數(shù)加上后,只統(tǒng)計活的對象數(shù)量.
-permstat 打印classload和jvm heap長久層的信息. 包含每個classloader的名字,活潑性,地址,父classloader和加載的class數(shù)量. 另外,內(nèi)部String的數(shù)量和占用內(nèi)存數(shù)也會打印出來.
-F 強迫.在pid沒有響應(yīng)的時候使用-dump或者-histo參數(shù). 在這個模式下,live子參數(shù)無效.
-h | -help 打印輔助信息
-J 傳遞參數(shù)給jmap啟動的jvm.
簡單例子說明
通過jmap -dump:format=b,file=jmap.txt 26937將日志文件打印到文本中,可以看到當(dāng)前目錄下多了一個日志文件
利用MemoryAnalyzer軟件打開日志文件,即可看到相關(guān)信息。如圖所示
MemoryAnalyzer軟件的使用說明請自行查閱
總結(jié)
以上是生活随笔為你收集整理的java jmap jc_利用jmap命令查看JVM内存使用详情的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断星座PHP,php根据日期判断星座的
- 下一篇: java的min函数_Java语言实现包