JDK自带的命令行工具

一、jps:JVM Process Status Tool,显示指定系统内所有的虚拟机进程。

jps的用法:

jps工具主要选项:

-q:只输出JVMID,省略主类的名称

-m:输出虚拟机进程启动时传递给主类main()函数的参数

-l:输出主类的全名,如果进程执行的是Jar包,输出Jar路径

-v:输出虚拟机进程启动时JVM参数

二、jstat:JVM Statistic Monitoring Tool,用于收集虚拟机各方面的运行数据

jstat可以显示本地或远程虚拟机进程中的类装载、内存、垃圾回收、JIT编译等,用法如下:

参数选项:

-class:监视类装载、卸载、总空间及类装载所耗费的时间

-gc:监视Java堆状况

-gccapacity:监视内容与-gc基本一样,但输出主要关注Java堆各个区域使用到的最大和最小空间

-gcutil:监视内容与-gc基本一样,但输出主要关注已使用空间占总空间的百分比

-gccause:与-gcutil功能一样,但会额外输出导致上一次GC产生的原因

-gcnew:监视新生代GC的状况

-gcnewcapacity:监视内容与-gcnew基本一样,输出主要关注使用到的最小和最大空间

-gcold:监视老年代GC的状况

-gcoldcapacity:监视内容与-gcold基本一样,输出主要关注使用到的最小和最大空间

-gcpermcapacity:输出永久代使用到的最小和最大空间

-compiler:输出JIT编译器编译过的方法、耗时等信息

-printcompilation:输出已被JIT编译的方法

三、jinfo:Configuration Info for Java,显示虚拟机配置信息

jinfo用法:

-flag:打印某个指定的name信息,[+|-]用于启用或者禁止该name,<name>=<value>可以动态设置name值

-flags:打印所有VM flags

-sysprops:打印所有Java系统属性

四、jmap:Memory Map for Java,生成虚拟机的内存转储快照(heapdump文件) 

jmap可以用来查看等待回收对象的队列,查看堆的概要信息,包括采用的是哪种GC收集器,堆空间的使用情况,用法如下:

参数:

-heap:显示Java堆详细信息

-finalizerinfo:显示在F-Queue中等待Finalizer线程执行finalize方法的对象

-dump:生成Java堆转储快照

-histo:显示堆中对象统计信息

-F:当虚拟机对-dump选项没有响应时,使用这个选项强制生成

五、jhat:JVM Heap Dump Brower,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,在浏览器上查看分析结果

用法:

利用jmap生成一个dump文件:

利用jhat分析这个dump文件:

Server is ready,浏览器打开http://localhost:7000就可以查看分析了。。。

六、jstack:Stack Trace for Java,显示虚拟机的线程快照

用法:

参数:

-F:强制输出线程堆栈

-l:除堆栈外,显示关于锁的附加信息

-m:如果调用本地方法的话,可以显示C/C++的堆栈

这些工具不用死记和背诵,知道怎么用就好了!

猜你喜欢

转载自blog.csdn.net/Apeopl/article/details/84068705