学习《深入理解Java虚拟机》总结。
jps:虚拟机进程状况工具
jps工具是用来显示虚拟机唯一ID的工具。
选项 | 作用 |
---|---|
-l | 显示主类的全名,如果是jar包,显示jar包路径 |
-m | 显示传给main函数的所有参数 |
-v | 显示启动JVM时的参数 |
-q | 只显示LVMID,不显示主类名称 |
- -l
- -m
- -v
- -q
jstat:虚拟机统计信息监视工具
jstat(JVM Statistics Monitoring Tool)用于监视虚拟机各种运行状态信息的命令行工具。显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
例如每隔250毫秒查询VMID为19477进程的垃圾收集情况,查询20次:
命令格式为jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]。
option选项 | 作用 |
---|---|
-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工具可以实时的调整和查看虚拟机各项参数。
使用jinfo -v可以查看虚拟机启动时显示指定的参数列表。使用jinfo -flag可以查寻未被显示指定的虚拟机参数默认值(jdk1.6之后也可以使用java -XX:+PrintFlagsFinal)。同时使用-sysprops可以将虚拟机进程的System.getProperties()的内容打印出来。使用-flag[+|-] name或者-flag name=value可以动态修改虚拟机参数值。