本文是《深入理解Java虚拟机(第二版)》第四章的笔记
我的JDK工具地址
| zxysMac:~ elwg$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home/bin | 
JDK的命令行工具
| 名称 | 全名 | 主要功能 | 
|---|---|---|
| jps | JVM Process Status | 显示指定系统的所有的虚拟机进程 | 
| jstat | JVM Statistics Monitoring Tool | 用于收集虚拟机各方面的运行数据 | 
| jinfo | Configuration Info for Java | 显示虚拟机配置信息 | 
| jmap | Memory Map for Java | 生成虚拟机的内存转储快照(heapdump文件) | 
| jhat | JVM Heap Dump Browser | 用于分析heapdump文件 | 
| jstack | Stack Trace for Java | 显示虚拟机的线程快照 | 
jps:虚拟机进程状况工具
- 
功能:可以列出运行的虚拟机进程、看到虚拟机执行的主类、本地虚拟机唯一ID 
- 
命令格式: 
 jps [ option ] [ hostid ]
- 
主要选项: 
- 例子:我在IDEA中运行列一个java文件,测试如下:
| (base) zxysMac:~ elwg$ jps -l | 
jstat:虚拟机统计信息监视工具
- 功能:可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据
- 命令格式:jstat [ option vmid [interval[s|ms] [count]] ]
- 主要选项:
jinfo:Java配置信息工具
- 
功能:实时查看和调整虚拟机各项参数 
- 
命令格式: jinfo [ option ] pid
- 
例子:看有没有用SerialGC 
| (base) zxysMac:~ elwg$ jinfo -flag UseSerialGC 46521 | 
jmap:Java内存映像工具
- 功能:生成虚拟机堆存转储快照(heapdump文件)
- 命令格式:jmap [ option] vmid
- 主要选项:
jhat:虚拟机堆快照分析工具
与jmap配合使用,也就是分析堆存转储快照(heapdump文件)。
jstack:Java堆栈跟踪工具
- 功能:用于生成虚拟机的线程快照
- 命令格式:jstack [ option ] vmid
- 主要选项:
JDK的可视化工具
JConsole:Java监视与管理控制台
内存监控,相当于可视化的jstat命令
线程监控,相当于可视化的jstack命令,以下举几个简单的例子
- 监听用户键盘输入
- 监听wait()
- 监听死锁
VisualVM:多合一故障处理工具
书上说它很强大,我还没下载成功。它几乎集成里上面的所有功能啊。