🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] > ### `jps` * **输出`java`进程** ![](https://i.loli.net/2019/03/12/5c874ebbd3acf.png) <br/> > ### `jstat` * **监视虚拟机各种运行状态信息的命令行工具** ``` # 查询8820进程的gc情况,每250ms查询一次,共查询十次 jstat -gc 8820 250 10 ``` ![](https://i.loli.net/2019/03/12/5c87501fe9406.png) <br/> > ### `jinfo` * **实时的查看和修改JVM参数** * `jinfo pid` <br/> > ### `jmap` * **`Java`内存映像工具** * **生成堆转储快照**,一般称为`heapdump`或`dump`文件。如果不使用`jmap`命令,可以通过设置`JVM`参数`-XX:+HeapDumpOnOutOfMemoryError`,虚拟机在`OOM`异常时会自动生成`dump`文件。 * `jmap`还可以查询`finalize`执行队列、`java`堆和永久代的详细信息,如空间使用率、当前用的哪种收集器等。 ``` # 生成5168进程的dump文件,之后可以用jvisualvm来分析导出的dump文件 jmap -dump:format=b,file=test.dump 5168 ``` ![](https://i.loli.net/2019/03/12/5c875326e2fc4.png) <br/> > ### `jhat` * **`JVM`的堆转储快照`dump`分析工具**,与`jmap`搭配使用,来分析`jump`生成的堆转储快照。 ``` #启动一个HTTP服务器,生成dump文件的分析结果展示在网页中,通过浏览器访问http://localhost:7000查看 jhat test.dump ``` <br/> > ### `jstack` * **堆栈跟踪工具**,生成`JVM`当前时刻的线程快照(一般称为threaddump和javacore文件),线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合。 * 生成线程快照主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。 ![](https://i.loli.net/2019/03/12/5c875948f22f8.png) <br/> > ### `hsdis` * **`JIT`生成代码反汇编** <br/> > ### `jvisualvm` * `JVM`监控可视化工具 * 进程的配置环境信息`jps` `jinfo` * CPU、堆、方法区、线程、GC `jstat` `jstack` * dump以及分析dump堆转储快照 `jmap` `jhat`