您的位置:首页 > 编程语言

定位到代码哪里出问题

2017-05-26 14:15 162 查看
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回收了哪些对象。(这里就不截图了)

基本上借用上面三种工具很快就能定位到代码哪里出问题了,或者哪里需要优化;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐