以下打印都在jdk8环境下,各版本略有不同。
一. jps
功能:列出正在运行的虚拟机进程,并显示对应的主类。
参数: jps -help
-q 只显示进程id
-m 输出传入main方法的参数
-l 输出main类或Jar的全限名
-v 输出传入JVM的参数
二.jstat
功能:用于监视虚拟机各种运行状态的工具。
参数:jstat -help | jstat -options
实例
三.jinfo
功能:实时查看虚拟机的各项参数
参数:
jinfo pid 不加参数,打印所有信息
jinfo -flags 7689 打印命令行属性
jinfo -flag CICompilerCount 7689 打印指定命令行属性
jinfo -sysprops 7689 打印系统属性
四.jmap
功能:生成堆转储快照
参数:
jmap -heap 7689 显示堆详细信息
jmap -dump:format=b,file=java.bin 7689 生成堆转存快照
jmap -finalizerinfo 7689 打印在F-Queue等待执行finalize方法的对象
java -histo 7689 打印堆中对象统计信息,类、实例数量、合计容量
五.jhat
功能:与jmap结合使用,用来分析堆存储快照 基本不使用,jhat较为简陋,有更多可视化工具可以实现这个功能。
六.jstack
功能:主要用来查看某个Java进程内的线程堆栈信息。主要用于解决线程出现长时间停顿,分析此时线程的调用堆栈,看哪里出现长时间系统调用。
参数:
jstack -m 7689 不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)