Day19-JDK中的多功能工具:jcmd(二)

前言

上一篇文章有提到,透过jcmd <pid> help(或jcmd <pid>)可以查看指定进程可使用的所有命令,接着这篇就要来大致介绍一些具体命令选项。
https://ithelp.ithome.com.tw/upload/images/20211004/20140481ZXwAJL9CDx.png

上面可以看到JFR这命令选项,他可以收集有关JVM以及在其上运行的Java应用程序的数据,他相当於JVM的黑盒子,後面若有机会再来介绍它


以下范例拿Day10-JDK查看虚拟机配置讯息工具:jinfo这篇的范例进行程序的运行(Step1.~Step3.)
我在 Step3.透过jps取得的进程是4221,以下示范的指令记得将4413改为欲查看的进程id喔!
https://ithelp.ithome.com.tw/upload/images/20211004/20140481BqlGTG9YAx.png

具体命令选项的介绍

jcmd <pid> <options>

透过jcmd <pid> help查到的options,可透过上面指令查看更详细的相关讯息
若是想看该选项的作用,jcmd <pid> help <options>

  • GC.class_histogram

提供Java堆使用状况的统计数据
https://ithelp.ithome.com.tw/upload/images/20211004/201404815W4LCCB8op.png

jcmd 4221 GC.class_histogram

https://ithelp.ithome.com.tw/upload/images/20211004/201404811EkTQNPncc.png
这指令看到的资讯就相当於jmap -histo <pid>显示的内容(Day11-JDK堆内存快照工具-jmap(一)基本应用)
https://ithelp.ithome.com.tw/upload/images/20211004/20140481N8WjqdmHFv.png

  • GC.heap_dump

生成Java堆的hprof文件
https://ithelp.ithome.com.tw/upload/images/20211004/20140481f9IWYpQhN4.png

jcmd 4221 GC.heap_dump <filename>

https://ithelp.ithome.com.tw/upload/images/20211004/20140481HbSwU96pVn.png
https://ithelp.ithome.com.tw/upload/images/20211004/201404810ys1Qu5b5B.png

  • GC.heap_info

提供通用Java堆讯息
https://ithelp.ithome.com.tw/upload/images/20211004/20140481Fum8w7T4Y6.png

jcmd 4221 GC.heap_info

https://ithelp.ithome.com.tw/upload/images/20211004/20140481xIWnKJ7Nhl.png

  • Thread.print

查看进程执行绪讯息
相当於jstack命令所看到的内容(Day16-JDK堆栈跟踪工具:jstack(一))
https://ithelp.ithome.com.tw/upload/images/20211004/20140481tWGEXbjOp9.png

jcmd 4221 Thread.print

https://ithelp.ithome.com.tw/upload/images/20211004/20140481rTLqQfuQi1.png
相当於jstack -l <pid>(Day16-JDK堆栈跟踪工具:jstack(二))
https://ithelp.ithome.com.tw/upload/images/20211004/20140481ZcPudVRRlq.png

  • VM.uptime

查看指定进程运行了多久的时间
https://ithelp.ithome.com.tw/upload/images/20211004/20140481U1lGuOzT5w.png

jcmd 4221 VM.uptime

https://ithelp.ithome.com.tw/upload/images/20211004/20140481X3LKrahGzM.png

  • VM.version

输出JVM版本资料
https://ithelp.ithome.com.tw/upload/images/20211004/201404819MjoYq8FGJ.png

jcmd 4221 VM.version

https://ithelp.ithome.com.tw/upload/images/20211004/20140481Pk4rw5zApS.png


<<:  [ Day 19 ] - 箭头函式

>>:  Day 24 CSS3 < 过渡 transition>

[Day 27] Leetcode 207. Course Schedule (C++)

前言 今天选择的是TOP 100 LIKED的另外一题~207. Course Schedule,牵...

[Day20] Laravel起步走

Laravel起步走 Laravel是一个MVC架构的PHP框架,分别是model(资料处理),co...

【D11】再度熟悉厨具:合约

前言 除了在Day6上面写的功能,发现合约还有很多东西可以玩。 概况 登入後,直接使用api.Con...

[Day8] THM Bolt

今天再来试玩一个 Try Hack Me 上面的简单题目,攻打一个 CMS (Content Man...

Day 19-重构 (Refactoring) 与接缝 (Seam) - 1 (核心技术-11)

程序码设计框架对测试码可测试性的影响 今天进到核心技术的第三个系列—重构 (Refactoring)...