功能
用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。
示例
说明
参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次,主要选项如下:
-class:监视类装载、卸载数量、总空间及类装载所耗费的时间
-gc:监视Java堆状况,包括Eden区、2个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息
-gccapacity:监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间
-gcutil:监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
-gccause:与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew:监视新生代GC的状况
-gcnewcapacity:监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间
-gcold:监视老年代GC的情况
-gcoldcapacity:监视内容与-gcold基本相同,输出主要注意使用到的最大和最小空间
-gcpermcapacity:输出永久代使用到的最大和最小空间
-compiler:输出JIT编译器编译过的方法、耗时等信息
-printcompilation:输出已经被JIT编译的方法
以-gcutil为例说明查询结果含义:
S0、S1:两个Survivor区,分别表示Survivor0、Survivor1
E:新生代Eden区
O:老年代Old区
P:永久代Permanent区
YGC:Minor GC次数
YGCT:Minor GC总耗时(秒)
FGC:Full GC次数
FGCT:Full GC总耗时(秒)
GCT:所有GC总耗时(秒)