12、jdk工具之jcmd介紹(堆轉儲、堆分析、獲取系統信息、查看堆外內存)

目錄

1、jdk工具之jps(JVM Process Status Tools)命令使用html

2、jdk命令之javah命令(C Header and Stub File Generator)java

3、jdk工具之jstack(Java Stack Trace)工具

4、jdk工具之jstat命令(Java Virtual Machine Statistics Monitoring Tool)post

4、jdk工具之jstat命令2(Java Virtual Machine Statistics Monitoring Tool)詳解性能

5、jdk工具之jmap(java memory map)、 mat之四--結合mat對內存泄露的分析url

6、jdk工具之jinfo命令(Java Configuration Info)spa

7、jdk工具之jconsole命令(Java Monitoring and Management Console).net

8、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM命令行

9、jdk工具之jhat命令(Java Heap Analyse Tool)線程

10、jdk工具之Jdb命令(The Java Debugger)

11、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)

11、jdk命令之Jstatd命令(Java Statistics Monitoring Daemon)

12、jdk工具之jcmd介紹(堆轉儲、堆分析、獲取系統信息、查看堆外內存)

十3、jdk命令之Java內存之本地內存分析神器:NMT 和 pmap

1、jcmd命令使用

先羅列下jcmd的常見用法:

  1. 堆直方圖查看:查看系統中類統計信息GC.class_histogram,示例見《Heap堆分析(堆轉儲、堆分析)
  2. 堆轉儲:導出堆信息GC.heap_dump,示例見《Heap堆分析(堆轉儲、堆分析)
  3. 獲取系統Properties內容VM.system_properties
  4. 獲取啓動參數VM.flags
  5. 獲取全部性能相關數據PerfCounter.print
  6. 查看原生內存信息:jcmd process_id VM.native_memory summary,示例見《原生內存(堆外內存)

 

概述

 

在JDK 1.7以後,新增了一個命令行工具jcmd。它是一個多功能工具,能夠用來導出堆,查看Java進程,導出線程信息,執行GC等。

使用示例

下面這個命令可以列出當前運行的全部虛擬機:

參數-l表示列出全部java虛擬機,針對每個虛擬機,可使用help命令列出該虛擬機支持的全部命令,以下圖所示,以8152這個進程爲例:

查看虛擬機啓動時間VM.uptime

打印線程棧信息Thread.print

查看系統中類統計信息GC.class_histogram

執行以下命令:

C:\Users\lenovo>jcmd 8152 GC.class_histogram

獲得結果以下: 

這裏寫圖片描述

導出堆信息GC.heap_dump

使用以下命令能夠導出當前堆棧信息,這個命令功能和 jmap -dump 
功能同樣

這裏寫圖片描述

獲取系統Properties內容VM.system_properties

這裏寫圖片描述

獲取啓動參數VM.flags

這裏寫圖片描述

獲取全部性能相關數據PerfCounter.print

這裏寫圖片描述

總結

從以上示例能夠看出,jcmd擁有jmap的大部分功能,而且Oracle官方也建議使用jcmd代替jmap。

相關文章
相關標籤/搜索