jcmd是在JDK1.7之後新增的一項工具。它是一個多功能的工具,就想把瑞士刀一樣,集合了各種小刀在同一把上。就用這篇來介紹jcmd可以達到什麼事情吧。
jcmd <pid | main class> <command ...|PerfCounter.print|-f file>
or
jcmd <option>
若是想查看該指令的說明資訊,透過jcmd -h
或jcmd -help
查看
jcmd
查看JVM進程的訊息jcmd
指令,就相當於jcmd -l
以及jps -l
jcmd <pid> PerfCounter.print
查看指定進程的性能統計訊息
jcmd <pid> help
針對指定進程,列出可使用的所有命令
以下的範例我用Day10-JDK查看虛擬機配置訊息工具:jinfo 這篇的範例進行程序的運行(Step1.~Step3.)
Step3.透過jps取得的進程是4221,以下示範的指令記得將4413改為欲查看的進程id喔!
查出4221進程有以下命令可以使用
jcmd <pid> 指定命令
顯示指定進程的指定命令的數據或動作
根據上個指令查到的內容,我隨便拿了其中一個命令進行演練,GC.class_histogram
是查看系統中的類統計訊息
查出的內容num總共有336,我只截取了前半部分