JDK常用命令(一)jps、jstat
曾几何时,我们学习java都不再研究jdk而直接使用IDEA、eclipse和Netbeans,仿佛我们就认为我们的程序是这些编辑器编译出来的,这时多么可笑。殊不知,编辑器就是方便我们编辑开发的,而真正编译、调试在起作用的仍然是JDK,编辑器进行非编辑操作时底层就是在调用JDK中的命令。以下命令只存在于JDK中,JRE中是没有的哦。
|
bin |
描述 |
功能 |
|
jps |
打印Hotspot VM进 |
VMID、JVM参数、main()函数参数、主类名/Jar路径 |
|
jstat |
查看Hotspot VM 运行时信息 |
类加载、内存、GC[可分代查看]、JIT编译 命令格式:jstat -gc 10340 250 20 |
|
jinfo |
查看和修改虚拟机各项配置 |
-flag name=value |
|
jmap |
heapdump: 生成VM堆转储快照、查询finalize执行队列、Java堆和永久代详细信息 |
jmap -dump:live,format=b,file=heap.bin [VMID] |
|
jstack |
查看VM当前时刻的线程快照: 当前VM内每一条线程正在执行的方法堆栈集合 |
Thread.getAllStackTraces()提供了类似的功能 |
|
javap |
查看经javac之后产生的JVM字节码代码 |
自动解析.class文件, 避免了去理解class文件格式以及手动解析class文件内容 |
|
jcmd |
一个多功能工具, 可以用来导出堆, 查看Java进程、导出线程信息、 执行GC、查看性能相关数据等 |
几乎集合了jps、jstat、jinfo、jmap、jstack所有功能 |
|
jconsole |
基于JMX的可视化监视、管理工具 |
可以查看内存、线程、类、CPU信息, 以及对JMX MBean进行管理 |
|
jvisualvm |
JDK中最强大运行监视和故障处理工具 |
可以监控内存泄露、跟踪垃圾回收、执行时内存分析、CPU分析、线程分析… |
一、jps
1、jps
显示线程id和执行线程主类名

2、jps - l
显示线程id和执行线程的主类名的全路径

3、jps -m
显示线程id和执行线程的主类名及其参数

4、jps -v
显示线程id和执行线程的主类名和JVM配置信息

二、jstat
jstat <option> [-t] [-h] <pid> <interval> <count>
option
-class 显示ClassLoad的相关信息;
-compiler 显示JIT编译的相关信息;
-gc 显示和gc相关的堆信息;
-gccapacity 显示各个代的容量以及使用情况;
-gccause 显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
-gcnew 显示新生代信息;
-gcnewcapacity 显示新生代大小和使用情况;
-gcold 显示老年代和永久代的信息;
-gcoldcapacity 显示老年代的大小;
-gcpermcapacity 显示永久代的大小;
-gcutil 显示垃圾收集信息;
-printcompilation 输出JIT编译的方法信息;
-t 可以在打印的列加上Timestamp列,用于显示系统运行的时间
-h 可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头
interval 执行每次的间隔时间,单位为毫秒
count 用于指定输出多少次记录,缺省则会一直打印
以下为各种option对应的结果详解
1、-class
jstat -class pid 1000 5
查看pid为23814的ClassLoad相关信息,每秒钟打印一次,总共打印5次

Loaded 加载类的数量
Bytes 加载类合计大小
Unloaded 卸载类的数量
Bytes 卸载类合计大小
Time 表示加载和卸载类总共的耗时
2、-compiler
jstat -cpmpiler pid
查看编译情况

Compiled 表示编译任务执行的次数
Failed 表示编译失败的次数
Invalid 表示编译不可用的次数
Time 表示编译的总耗时
FailedType 表示最后一次编译失败的类型
FailedMethod 表示最后一次编译失败的类名和方法名
3、-gc
jstat -gc pid
查看垃圾回收状况

S0C: Survivor0(幸存区0)大小(KB)
S1C: Survivor1(幸存区1)1大小(KB)
S0U: Survivor0(幸存区0)已使用大小(KB)
S1U: Survivor1(幸存区1)已使用大小(KB)
EC : Eden(伊甸区)大小(KB)
EU : Eden(伊甸区)已使用大小(KB)
OC :老年代大小(KB)
OU : 老年代已使用大小(KB)
MC : 方法区大小(KB)
MU : 方法区使用大小(KB)
CCSC : 压缩类空间大小(KB)
CCSU : 压缩类空间使用大小(KB)
YGC:新生代GC个数
YGCT:新生代GC的耗时(秒)
FGC :Full GC次数
FGCT:Full GC耗时(秒)
GCT :GC总耗时(秒)
4、-gccapacity
jstat -gccapacity pid
显示各个代的容量的信息

NGCMN:新生代最小容量(KB)
NGCMX:新生代最大容量(KB)
NGC:当前新生代容量(KB)
S0C:第一个幸存区大小(KB)
S1C:第二个幸存区的大小(KB)
EC:伊甸园区的大小(KB)
OGCMN:老年代最小容量(KB)
OGCMX:老年代最大容量(KB)
OGC:当前老年代大小(KB)
OC:当前老年代大小(KB)
MCMN:最小元数据容量(KB)
MCMX:最大元数据容量(KB)
MC:当前元数据空间大小(KB)
CCSMN:最小压缩类空间大小(KB)
CCSMX:最大压缩类空间大小(KB)
CCSC:当前压缩类空间大小(KB)
YGC:年轻代gc次数(KB)
FGC:老年代GC次数(KB)
5、-gccause
jstat -gccause pid
显示最近一次GC的原因

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:eden区已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
M:当前元数据空间所占百分比
CCS:当前压缩类空间所占百分比
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
LGCC:上一次GC的原因,是G1垃圾回收器回收
GCC :当前GC的原因
6、-gcnew
jstat -gcnew pid
显示新生代的详细信息

S0C:第一个幸存区大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
TT:对象在新生代存活的次数
MTT:对象在新生代存活的最大次数
DSS:期望的幸存区大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间
7、-gcnewcapacity
jstat -gcnewcapacity pid
输出新生代各个区的详细信息

NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0CMX:最大幸存1区大小
S0C:当前幸存1区大小
S1CMX:最大幸存2区大小
S1C:当前幸存2区大小
ECMX:最大伊甸园区大小
EC:当前伊甸园区大小
YGC:年轻代垃圾回收次数
FGC:老年代回收次数
8、-gcold
jstat -gcold pid
显示老年代GC的详细情况

MC:方法区大小
MU:方法区使用大小
CCSC:压缩类空间大小
CCSU:压缩类空间使用大小
OC:老年代大小
OU:老年代使用大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
9、-gcoldcapacity
jstat -gcoldcapacitp pid
输出老年代的详细信息

OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:老年代大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
10、-gcutil
jstat -gcutil pid
查看每个代区域使用的百分比情况

S0:幸存1区当前使用比例
S1:幸存2区当前使用比例
E:伊甸园区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
JDK常用命令(一)jps、jstat的更多相关文章
- Java常用命令:jps、jstack、jmap、jstat(带有实例教程)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013310517/article/details/80990924 查看Java进程:jps ...
- JDK常用命令行工具(基于JDK10)
虽然我是在jdk10环境下, 但是大体上和jdk8是差不多的. 总共有这么多 本来想着一口气把所有命令都边学边总结一下的, 结果发现....有些还真的不是很常用....或者说我这个水平还接触不到那么多 ...
- JDK常用命令
转自:https://www.cnblogs.com/saiQsai/p/10353044.html 1.jps 查看java进程,得到进程ID:7854 作用等同于:ps -ef | grep ja ...
- JDK常用工具集——jps
该命令的作用是罗列出目标系统(target system)中所有具有访问权限到的Java进程. 一.命令简介: jps [option] [hostid] 二.参数说明: option ...
- JDK 常用命令
一) 引言: 当我们安装完JDK时,除了必须的编译运行以外,它就已经自带了很多辅助工具.正所谓“工欲善其事,必先利其器.”如果能用好这些工具,它们将大大方便你的开发.它们的实用和方便有时甚至会使 ...
- JDK常用命令(三)jmap
jmap jmap,Java Memory Map.主要用于打印指定Java进程(或核心文件.远程调试服务器)的共享对象内存映射或堆内存细节. jmap命令可以获得运行中的jvm的堆的快照,从而可以离 ...
- JDK常用命令(二)jstack
Dump Dump文件是进程的内存镜像.可以把程序的执行状态通过调试器保存到dump文件中.Dump文件一般用来给驱动程序编写人员调试驱动程序用的,在java中用来分析正在运行的程序在内存中的堆栈信息 ...
- JDK常用命令行工具使用
- jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)
文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎 ...
随机推荐
- [Java in NetBeans] Lesson 15. Sorting and Searching.
这个课程的参考视频和图片来自youtube. 主要学到的知识点有: Build in functions in java.util.Collections Need to implement a co ...
- node 图片验证码生成
var captchapng = require('captchapng'); var http = require("http") var server = http.creat ...
- 极限树(extraTree)总结
随机森林:是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定.随机森林对回归的结果在内部是取得平均但是并不是所有的回归都是取的平均,有些是取的和. 随机森林里的随机 极限树 ...
- Python Anaconda使用
选择Python 科学计算器发行版 Python用于科学计算的一些常用工具和库 IPython-增强的交互环境:支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函 ...
- Go web ajax project
这个是本人学习之用,比较乱 我也不知道这是在教大家什么,但如果你能看懂,那你就能真正干活了 //https-ajax.go package main import ( "fmt" ...
- 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。
将项目部署到服务器后发现有如下问题,查了网上好多说是需要被序列化的类没有写上[Serializable]标志,所以把全部需要序列化的列都写上了标志发现还是不是,最后查到了发现网上说的并不太准确,而是需 ...
- shell基础:多命令顺序执行与管道符
有些命令的前后关系正是需要这样的关系来实现. 如在软件包的安装中: 第三个是个简单的判断:
- react native 中使用react-native-vector-icons
1.引入依赖 cnpm install react-native-vector-icons --save 2.LINK原生 react-native link react-native-vector- ...
- activity bj draw 流程图
- django-pagination 样式修改
默认 django-pagination 样式: 使用bootstrap后样式: (有些瑕疵,下面来完善一下) 修改后: 效果还不错吧.那么讲下如何修改. 首先找到其源码: (路径:site-pac ...