JDK命令行工具
名称 | 主要作用 |
---|---|
jps | JVM Process Status Tool,显示指定系统内所有的Hotspot虚拟机进程 |
-
jps 虚拟机进程状况工具
jps是功能单一,但是也是使用频率最高的JDK命令行工具,它主要是列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称及这些进程的本地虚拟机唯一ID(LVMID)。
jps语法格式:
jps [options] [hostid]
选项[options] 作用 -q 只显示LVMID,省略虚拟机主类名称 -l 显示LVMID和主类全名,如果进程执行的是jar包,则显示jar包路径 -m 显示虚拟机主类启动时传递给main()函数的参数 -v 输出虚拟机进程启动时JVM参数
-
jstat虚拟机统计信息监视工具
jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程[1]虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
jstat 语法格式:
jstat[option vmid[interval[s|ms][count]]]
interval和count代表时间间隔和查询次数,如果省略两个参数,说明只查询一次
如果是远程虚拟机进程,则格式为:
[protocol:][//]lvmid[@hostname[:port]/servername]
选项 作用 -class 监视类装在、卸载数量、总空间以及类装载所消耗的时间 -gc 监视Java堆状况,包括Eden区、两个survivor区、老年代、永久带等容量、已用空间、GC时间合计等信息 -gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间 -gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比 -gccause 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC状况 -gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间 -gcold 监视老年代GC状况 -gcoldcapacity 监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间 -gcpermcapacity 输出永久代使用到的最大、最小空间 -compiler 输出JIT编译器编译过的方法、耗时等信息 -printcompilation 输出已被JIT编译的方法
-
jinfo Java配置信息工具
jinfo(Configuration Info for Java)的作用是实时地查看和调整虚拟机各项参数。
jinfo语法格式:
jinfo[option]pid
选项 作用 -v 查看虚拟机启动时显式指定的参数列表 -sysprops 把虚拟机进程的System.getProperties()的内容打印出
来
-
jmap Java内存映像工具
jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。如果不使用jmap命令,要想获取Java堆转储快照,还有一些比较“暴力”的手段:譬如在第2章中用过的-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:+HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成dump文件,又或者在Linux系统下通过Kill-3命令发送进程退出信号“吓唬”一下虚拟机,也能拿到dump文件。
jmap 语法格式:
jmap[option]vmid
选项 作用 -dump 生成Java堆转储快照。格式为:-dump:[live,]format=b,file=<filename> -finalizerinfo 显示F-Queue中等待Finalizer线程执行finalize方法的对象,只有在Linux/Solaris平台下开放
-heap 显示Java堆详细信息,如使用那种回收期、参数配置、分代状况等,只有在Linux/Solaris平台下开放 -histo 显示堆中对象统计信息,包括类、实例数量、合计容量 -permstat 以ClassLoader为统计口径显示永久代内存状态。只有在Linux/Solaris平台下开放 -F 当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照,只有在Linux/Solaris平台下开放