jstat(JVM Statistics Monitoring Tools),用于监视虚拟机各种运行状态信息的命令行工具,它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、JIT编辑等运行数据。
在没有GUI图形界面,只提供了存文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具。常用语检测垃圾回收问题以及内存泄露问题。
官方文档
https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jstat.html
基本语法
jstat -
interval参数
count参数
-t参数
可以输出信息前加上Timestamp列,显示程序的运行时间。单位为秒
-h参数
-option参数
JIT相关
- -complier:显示JIT编译器编译过的方法、耗时等信息
- -printcompliation:输出已经被JIT编译的方法
类装载相关的
-class:显示ClassLoader的相关信息:类的装载、卸载数量、总空间、类装载所消耗的时间等
垃圾回收相关
-gc:显示GC相关的堆信息。包括Eden区、两个Survivor区、老年代、永久代等容量、已用空间、GC时间合计等信息。
- -gccapacity:显示内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。
- -gcutil:显示内容与-gc基本相同,但输出内容主要关注已使用空间占总空间的百分比。
- -gccause:与-gcutil功能一样,但是会额外输出导致最后一次或当前正在发生的GC产生的原因。
- -gcnew:显示新生代GC状况
- -gcnewcapacity:显示内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间
- -gcold:显示老年代GC状况
- -gcoldcapacity:显示内容与-gcold基本相同,输出主要关注使用到的最大、最小空间
- -gcp:显示永久代使用到的最大、最小空间