Windows使用jstack跟踪线程状态
1.JPS
JPS(Java Virtual MachineProcess Status Tool)是JDK1.5提供的一个显示当前所有Java进程PID的命令。
- jps: 列出 PID 和 Java 主类名;(一般使用这个就够了)
- jps -l: 列出 PID 和 Java主类全称;
- jps -lm: 列出 PID、主类全称和应用程序参数;
- jps -v: 列出 PID 和 JVM参数。
2.JStack
JStack是Java虚拟机自带的一种堆栈跟踪工具。根据给定的Java进程ID来打印Java服务的堆栈状态信息。
- jstack [-l] pid: 根据 PID 打印堆栈信息。
3.JMap
jmap命令是一个可以输出所有内存中对象的工具。可以输出JVM中的heap、打印出某个Java进程内存中的所有的对象的情况(如:产生哪些对象及数量)。
- jmap -histo[:live] pid: 打印每个class的实例数目,内存占用大小,类全名信息。如果加上:live,只统计活的对象数量。
补充:
[I、[B、[C是基元数组, [B => byte [] , [C => char , [I => int , [Lx => 类型 x 的数组。
参考:
https://blog.****.net/dyyshb/article/details/80593103,
根据个人理解进行了改善。