标签:java
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回收了哪些对象。(这里就不截图了)
基本上借用上面三种工具很快就能定位到代码哪里出问题了,或者哪里需要优化;
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:java
原文地址:http://blog.csdn.net/barnetthe/article/details/47297423