Windows使用jstack跟踪线程状态

1.JPS

JPS(Java Virtual MachineProcess Status Tool)是JDK1.5提供的一个显示当前所有Java进程PID的命令。

  1. jps: 列出 PID 和 Java 主类名;(一般使用这个就够了)
  2. jps -l: 列出 PID 和 Java主类全称;
  3. jps -lm: 列出 PID、主类全称和应用程序参数;
  4. jps -v: 列出 PID 和 JVM参数。

在这里插入图片描述

2.JStack

JStack是Java虚拟机自带的一种堆栈跟踪工具。根据给定的Java进程ID来打印Java服务的堆栈状态信息。

  1. jstack [-l] pid: 根据 PID 打印堆栈信息。

在这里插入图片描述

3.JMap

jmap命令是一个可以输出所有内存中对象的工具。可以输出JVM中的heap、打印出某个Java进程内存中的所有的对象的情况(如:产生哪些对象及数量)。

  1. jmap -histo[:live] pid: 打印每个class的实例数目,内存占用大小,类全名信息。如果加上:live,只统计活的对象数量。

在这里插入图片描述

补充:

[I、[B、[C是基元数组, [B => byte [] , [C => char , [I => int , [Lx => 类型 x 的数组。





参考: https://blog.csdn.net/dyyshb/article/details/80593103, 根据个人理解进行了改善。