定位到代码哪里出问题
2017-05-26 14:15
162 查看
1.jps可以理解成Java进程的ps,也就是罗列出所有的正在运行的Java进程(这里不截图了);
2.jstat 一个极强的一个VM监控工具;jstat -gcutil
pid 可以查看对应该id进程的gc所有状况,如下图:
![](http://img.blog.csdn.net/20150805151350431)
下面解释一下各个字母表示的意思:
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的数量
![](http://img.blog.csdn.net/20150805152820324)
Loaded表示已经加载的class类的数量,Bytes表示Loaded多少字节,unloaded表示没有加载的class,Bytes表示unloaded多少字节
Time表示加载时间
3.jmap pid
heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。(这里就不截图了)
基本上借用上面三种工具很快就能定位到代码哪里出问题了,或者哪里需要优化;
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回收了哪些对象。(这里就不截图了)
基本上借用上面三种工具很快就能定位到代码哪里出问题了,或者哪里需要优化;
相关文章推荐
- 转Xcode 调试技巧 XCode调试技巧–设置全局断点快速定位问题代码所在行[zz]
- 在web页面上放了一些服务器按钮,在各个按钮的单击事件中都有代码!可不知道哪里出问题了,怎么操作都不能触发这些事件,好象代码一点都不执行!根本没办法调试!请高手指点一二!谢谢!
- liunx下cpu占用率高如何定位代码问题
- android 代码混淆导致问题,快速定位
- 2013 Mac Air 装Win7双系统问题-安装程序无法创建新的分区,也无法定位系统 & Windows无法安装所需的文件,错误代码0x80070570
- windows 7安装问题 无法定位到系统分区 + 展开文件时出现网络问题(错误代码:0x80070005)+ win8安装 找不到分区
- 关于代码重定位问题
- 201508061040_《移动开发之——解决header定位差异问题代码》
- XCode调试技巧–设置全局断点快速定位问题代码所在行
- ndk-stack定位不出崩溃代码行的问题
- 通过比对版本和代码修改历史定位由于代码修改引发的新问题
- XCode调试 设置全局断点并快速定位问题代码所在行
- 6410 uboot代码重定位问题
- linux 下如何定位代码问题
- 【吐槽篇之经验<四>】如何运用Stand-Alone Profiler定位.NET代码级问题
- XCode调试技巧–设置全局断点快速定位问题代码所在行
- XCode调试 设置全局断点并快速定位问题代码所在行
- 分享如何快速定位代码在哪里崩掉了(bochs+NASM汇编)
- ndk-stack定位不出崩溃代码行的问题
- iOS开发怎么定位问题出错的代码位置