jstat查看JVM统计信息

1、类装载信息

jstat -class 4431 1000 10 其中1000表示每隔1秒钟执行一次,10表示输出10次

-class输出的结果中Loaded表示加载的类的个数,Bytes表示加载了多少K,Unloaded表示卸载的类的个数,第三个字段Bytes表示卸载了多少K,Time表示花费在类加载和卸载的时间

命令具体使用参考https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html

2、垃圾收集信息

参数有:-gc、-gcutil、-gccause、-gcnew、-gcold

命令举例:jstat -gc 4431 1000 3 

JDK1.8情况下-gc输出结果的含义 

S0C、S1C、S0U、S1U:S0和S1的总量与使用量

EC、EU:Eden 区总量与使用量

OC、OU:Old区总量与使用量

MC、MU:Metaspace区总量与使用量

CCSC、CCSU:压缩类空间总量与使用量

YGC、YGCT:YoungGC的次数与时间

FGC、FGCT:FullGC的次数与时间

GCT:总的GC时间

命令具体使用同上述网址

 

JVM内存结构

JVM内存分为堆区和非堆区,堆区分为Young区和Old区,Yong区分为Survivor和Eden,Survivor由S0和S1组成,S0和S1一样大,在同一时间点只有一个是启用的,另一个是空的。 JDK1.8非堆区Metaspace中的CCS,当我们启用短指针的时候,就会存在CCS;CodeCache存放的是JIT的代码信息,也就是把Java代码转化为Native代码时就存放在CodeCache中

3、JIT编译

参数有:-compiler、-printcompilation

命令举例:jstat -compiler 4431

-compiler输出结果中Compiled表示完成了多少个编译的任务 ,Failed表示失败的,Invalid表示无效的

命令具体使用同上述网址

猜你喜欢

转载自www.cnblogs.com/yanguobin/p/12059273.html