iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
自我挑戰組

展開JDK工具的30天應用之旅系列 第 18

Day18-JDK中的多功能工具:jcmd(一)

  • 分享至 

  • xImage
  •  

jcmd介紹

jcmd是在JDK1.7之後新增的一項工具。它是一個多功能的工具,就想把瑞士刀一樣,集合了各種小刀在同一把上。就用這篇來介紹jcmd可以達到什麼事情吧。

指令介紹

jcmd <pid | main class> <command ...|PerfCounter.print|-f file> 

or

jcmd <option>

若是想查看該指令的說明資訊,透過jcmd -hjcmd -help查看
https://ithelp.ithome.com.tw/upload/images/20211003/20140481Nlq0CGnkev.png
https://ithelp.ithome.com.tw/upload/images/20211003/20140481j1LZUwyjCX.png


  • jcmd

查看JVM進程的訊息
jcmd指令,就相當於jcmd -l以及jps -l
https://ithelp.ithome.com.tw/upload/images/20211003/20140481yVf98BUdLv.png

  • jcmd <pid> PerfCounter.print

查看指定進程的性能統計訊息
https://ithelp.ithome.com.tw/upload/images/20211003/20140481ipDlcuvcjy.jpg

  • jcmd <pid> help

針對指定進程,列出可使用的所有命令

以下的範例我用Day10-JDK查看虛擬機配置訊息工具:jinfo 這篇的範例進行程序的運行(Step1.~Step3.)
Step3.透過jps取得的進程是4221,以下示範的指令記得將4413改為欲查看的進程id喔!
https://ithelp.ithome.com.tw/upload/images/20211003/20140481ziXzQKDFKI.png

查出4221進程有以下命令可以使用
https://ithelp.ithome.com.tw/upload/images/20211003/201404815vdZzR45bh.png

  • jcmd <pid> 指定命令

顯示指定進程的指定命令的數據或動作
根據上個指令查到的內容,我隨便拿了其中一個命令進行演練,GC.class_histogram是查看系統中的類統計訊息
https://ithelp.ithome.com.tw/upload/images/20211003/2014048135KDKlMMls.jpg
查出的內容num總共有336,我只截取了前半部分


上一篇
Day17-JDK堆棧跟蹤工具:jstack(二)
下一篇
Day19-JDK中的多功能工具:jcmd(二)
系列文
展開JDK工具的30天應用之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言