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,
-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++的堆栈
这些工具不用死记和背诵,知道怎么用就好了!
还没有评论,来说两句吧...