4.2 JDK命令行工具
名称 | 主要作用 |
---|---|
jps | JVM Process Status Tool,显示指定系统内所有HotSpot虚拟机进程 |
jstat | JVM Statistics Monitoring Tool,用于手机HotSpot虚拟机各方面运行数据 |
jinfo | Configuration Info For Java,显示虚拟机配置信息 |
jmap | Memory Map For Java,生成虚拟机内存转储快照(heapdumap文件) |
jhat | JVM Heap Dump Brower,用于分析heapdump文件 |
jstack | Stack Trace For Java,显示虚拟机线程快照 |
4.2.1 jps:虚拟机进程状况工具
jps [options] [hostid]
参数 | 功能 |
---|---|
-q | 只输出LVMID,省略主类名称 |
-m | 输出虚拟机进程启动时传递给主类main()函数的参数 |
-l | 输出主类全名,如果进程执行的是jar包,输出jar路径 |
-v | 输出虚拟机启动时的JVM参数 |
4.2.2 jstat:虚拟机统计信息监视工具
主要查询3类信息:
- 类装载
- 垃圾收集
- 运行期编译
jstat [ option vmid [interval [s|ms] [count]] ]
参数 | 功能 |
---|---|
-class | 监视类装载、卸载数量、总空间及类装载所耗费的时间 |
-gc | 监视Java堆状况,包括Eden区,2个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息 |
-gccapacity | 与-gc基本相同,主要关注Java堆各个区域使用到的最大和最小空间 |
-gcutil | 与-gc基本相同,主要关注已使用空间占总空间百分比 |
-gccause | 与-gcutil基本相同,但是会额外输出导致上一次gc产生的原因 |
-gcnew | 监视新生代GC状况 |
-gcnewcapacity | 监视内容与-gcnew一样,主要关注使用到的最大和最小空间 |
-gcold | 监视老年代GC情况 |
-gcoldcapacity | |
-compiler | 输出JIT编译器编译过的方法、耗时等信息 |
-printcompilation | 输出已经被JIT编译的方法 |
4.2.3 jinfo:Java配置信息工具
jinfo [option] pid
4.2.4 jmap:Java内存映像工具
jmap [option] vmid
参数 | 功能 |
---|---|
-dump | 生成Java堆转储快照。格式:-dump:[live,]format=b,file=<filename>,其中live子参数说明是否只dump出存活的对象 |
-finalizerinfo | 在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris下有效 |
-heap | 显示Java堆详细信息,如使用哪种回收期、参数配置、分代状况等。只在Linux/Solaris下有效 |
-histo | 显示堆中对象统计信息,包括类、实例数量和合计总量 |
4.2.5 jhat:虚拟机堆转储快照分析工具
4.2.6 jstack:Java堆栈跟踪工具
jstack [option] vmid
参数 | 功能 |
---|---|
-F | 强制输出 |
-l | 除堆栈外,显示关于锁的附加信息 |
-m | 如果调用了本地方法的话,可以显示C/C++的堆栈 |