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