jvm学习02-jdk自带工具使用

jps

解释:虚拟机进程状况工具 参数: -q 只输出lvmid,省略主类的名称 -m 输出虚拟机进程启动的时候传递给朱磊main()函数的参数 -l 输出主类的全名,如果进程执行的是jar包,则输出jar包路径 -v 输出虚拟机进程启动的时候的jvm参数

示例:

C:\Users\linjinbao666\Desktop>jps -v
11776 Bootstrap -Dcatalina.base=C:\Users\linjinbao666\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 -Dcatalina.home=D:\tomcat\apache-tomcat-7.0.92 -Dwtp.deploy=C:\Users\linjinbao666\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps -Djava.endorsed.dirs=D:\tomcat\apache-tomcat-7.0.92\endorsed -Dfile.encoding=GBK
7280 Jps -Dapplication.home=C:\Program Files\Java\jdk1.8.0_171 -Xms8m
11700  -Dosgi.requiredJavaVersion=1.8 -Dosgi.instance.area.default=@user.home/eclipse-workspace -XX:+UseG1GC -XX:+UseStringDeduplication -Dosgi.requiredJavaVersion=1.8 -Dosgi.dataAreaRequiresExplicitInit=true -Xms256m -Xmx1024m -Declipse.p2.max.threads=10 -Doomph.update.url=http://download.eclipse.org/oomph/updates/milestone/latest -Doomph.redirection.index.redirection=index:/->http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/

C:\Users\linjinbao666\Desktop>

jstat

解释:虚拟机统计信息监视工具 参数: -class 监视类装载,卸载数量,总空间以及装在所消耗的时间 -gc 监视Java堆状况,包括eden区,两个survivor区,老年代,永久代的容量,已用空间,gc时间合计等信息 -gccapacity 监视内容与-gc基本相同,但输出主要关注java堆各个区域使用到的最大最小空间 -gcutil 监视内容同上,输出关注已使用空间占总空间的百分比 -gccause 同上,额外加上导致上次gc的产生原因 -gcnew 监视新生代gc的状况 -gcnewcapacity -gcold 监视老年代gc状况 -gcoldcapacity -gcpermcapacity监视永久代 -compiler 输出JIT编译器编译过的方法,耗时等信息 -printcompilation 输出已经被JIT编译的方法

示例:

C:\Users\linjinbao666\Desktop>jstat -gc 11776  250 10
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032
5120.0 5120.0 5092.0  0.0   32768.0  20853.5   86016.0    10271.3   15360.0 14966.2 1792.0 1714.0      2    0.032   0      0.000    0.032

C:\Users\linjinbao666\Desktop>

jinfo

解释:Java配置信息工具 参数: -flags 示例:

C:\Users\linjinbao666\Desktop>jinfo -flags 11776
Attaching to process ID 11776, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.171-b11
Non-default VM flags: -XX:CICompilerCount=4 -XX:InitialHeapSize=132120576 -XX:MaxHeapSize=2103443456 -XX:MaxNewSize=700973056 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=44040192 -XX:OldSize=88080384 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line:  -Dcatalina.base=C:\Users\linjinbao666\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 -Dcatalina.home=D:\tomcat\apache-tomcat-7.0.92 -Dwtp.deploy=C:\Users\linjinbao666\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps -Djava.endorsed.dirs=D:\tomcat\apache-tomcat-7.0.92\endorsed -Dfile.encoding=GBK

C:\Users\linjinbao666\Desktop>

jmap

解释:Java内存映像工具 参数: -dump 生成Java堆存储快照 -finalizerinfo 显示等待finalize方法的对象 -heap 显示Java堆详细信息 -histo 显示堆中对象统计信息,包括类,实例数量,合计容量 -permstat 已classloader为统计口径,显示永生代内存状态 -F 强制dump 示例:

C:\Users\linjinbao666\Desktop>jmap -dump:format=b,file=out.bin 11776
Dumping heap to C:\Users\linjinbao666\Desktop\out.bin ...
Heap dump file created

C:\Users\linjinbao666\Desktop>

jhat

解释:虚拟机堆转储快照分析工具,与jmap搭配使用,运行时启动http服务,在浏览器查看 参数:无 示例:

C:\Users\linjinbao666\Desktop>jhat out.bin
Reading from out.bin...
Dump file created Sat Dec 07 20:21:08 CST 2019
Snapshot read, resolving...
Resolving 162034 objects...
Chasing references, expect 32 dots................................
Eliminating duplicate references................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.

在浏览器查看即可

jstack

解释:Java堆栈跟踪工具 参数: -F -l 除堆栈外,显示锁的信息 -m 显示C/C++的堆栈 示例:省略

hsdis

解释:JIT生成代码反汇编 参数: 示例:

## jconsole 解释:Java监视与管理控制台-可视化