Jstat使用详解

来源:互联网 发布:windows启动菜单修改 编辑:程序博客网 时间:2024/05/20 20:45

1.jps可以理解成java进程的ps,也就是罗列出所有的正在运行的Java进程(这里不截图了);


2.jstat 一个极强的一个VM监控工具;jstat -gcutil pid 可以查看对应该id进程的gc所有状况,如下图:




下面解释一下各个字母表示的意思:

s0:如果了解JVM的童鞋,很清楚s0就是Java堆内存里的新生代的survivor space0的简称,所有该值指的是新生代s0的已使用的百分比

s1:如同上面,s1自然而然的就是Java堆内存里新生代的survivor space1的简称,所有该值指的是新生代s1的已使用的百分比

E: E是新生代Eden的简称,这里表示eden区域使用的百分比

O:自然而然的就是oldspace使用耳朵区域,但这里并不是指的是老年代;

p :premspace的简称,指的的老年代使用的百分比;

YGC:新生代的GC次数,也就是MiniorGC的次数,

YCGT:新生代GC所用的时间;

FGC:老年代的GC次数;

FGCT:老年代的GC次数的时间

GCT:垃圾回收的总时间

2.jstat -class 显示加载class的数量




Loaded表示已经加载的class类的数量,Bytes表示Loaded多少字节,unloaded表示没有加载的class,Bytes表示unloaded多少字节

Time表示加载时间

3.jmap pid 

  heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。(这里就不截图了)



基本上借用上面三种工具很快就能定位到代码哪里出问题了,或者哪里需要优化;


0 0