Java GC 日志分析
2014-08-15 22:37
337 查看
一、java 虚拟机一些参数-Dosgi.requiredJavaVersion=1.5 // -D表示设置property 参数,在java代码里面就可以使用System.getProperties("osgi.requiredJavaVersion")获取这个值-Xverify:none //加载代码的时候不进行验证,信任代码的情况下使用,如eclipse启动时可以加这个参数,加快启动速度-verbose:gc-Xms512m-Xmx512m-Xmn128m //Yong(年轻代)的初始大小,一般Xms的1/4-XX:+UseConcMarkSweepGC //使用CMS垃圾收集器收集老年代-XX:+PrintGCDetails //输出GC日志-XX:+PrintGCDateStamps-Xloggc:gc.log //gc日志输出,可以指定路径-XX:PermSize=64m //永久代的初始大小-XX:MaxPermSize=64m-XX:+DisableExplicitGC //禁用System.gc()调用二、加上如上参数后打印的日志2012-11-15T16:57:06.118+0800: 2.089: [GC 2.089: [ParNew: 104960K->13056K(118016K), 0.1720037 secs] 104960K->48670K(511232K), 0.1721610 secs] [Times: user=0.28 sys=0.01, real=0.17 secs]2012-11-15T16:57:07.618+0800: 3.583: [GC 3.583: [ParNew: 117987K->13056K(118016K), 0.0986891 secs] 153601K->64983K(511232K), 0.0988357 secs] [Times: user=0.14 sys=0.01, real=0.09 secs]2012-11-15T16:57:10.696+0800: 6.669: [GC 6.669: [ParNew: 118016K->13056K(118016K), 0.0685054 secs] 169943K->78453K(511232K), 0.0686582 secs] [Times: user=0.14 sys=0.00, real=0.08 secs]2012-11-15T16:57:12.524+0800: 8.490: [GC 8.490: [ParNew: 118016K->11244K(118016K), 0.0525525 secs] 183413K->83007K(511232K), 0.0527229 secs] [Times: user=0.08 sys=0.00, real=0.05 secs]以其中一例分析:2012-11-15T16:57:12.524+0800: 8.490: [GC 8.490: [ParNew: 118016K->11244K(118016K),0.0525525 secs] 183413K->83007K(511232K), 0.0527229 secs] [Times: user=0.08 sys=0.00, real=0.05 secs]8.490 :表示虚拟机启动运行到8.490秒是进行了一次monor Gc ( not Full GC)ParNew :表示对年轻代进行的GC,使用ParNew 收集器118016K->11244K(118016K) :118016K 年轻代收集前大小,11244K 收集完以后的大小 , 118016K 当前年轻代分配的总大小0.0525525 secs :表示对年轻代进行垃圾收集是,用户线程暂停的时间,即此次年轻代收集花费的时间183413K->83007K(511232K) :JVM heap堆收集前后heap堆内存的变化0.0527229 secs :整个JVM此次垃圾造成用户线程的暂停时间。更全一点的参数说明:
[GC [<collector>: <starting occupancy1> -> <ending occupancy1>, <pause time1> secs] <starting occupancy3> -> <ending occupancy3>, <pause time3> secs] <collector> GC收集器的名称 <starting occupancy1> 新生代在GC前占用的内存 <ending occupancy1> 新生代在GC后占用的内存 <pause time1> 新生代局部收集时jvm暂停处理的时间 <starting occupancy3> JVM Heap 在GC前占用的内存 <ending occupancy3> JVM Heap 在GC后占用的内存 <pause time3> GC过程中jvm暂停处理的总时间
<img src="http://img.blog.csdn.net/20140815223722922?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcTM0OTIwOTE2Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="http://img.blog.csdn.net/20140815223759863?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcTM0OTIwOTE2Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相关文章推荐
- Java 性能优化 - Websphere GC日志分析
- Java GC - 监控回收行为与日志分析
- java性能优化 –gc日志收集与分析
- Java GC 日志分析秒懂!
- java的gc日志分析
- Java GC CMS 日志分析
- Java GC - 监控回收行为与日志分析
- 【GC分析】Java GC日志查看
- Java GC 日志分析
- java性能优化 –gc日志收集与分析
- Java GC - 监控回收行为与日志分析
- Java GC CMS 日志分析
- java性能优化 –gc日志收集与分析
- Java GC 日志图解
- java GC 日志详细图解
- 案例分析:java中substring引发的Full gc
- Java GC 日志详解
- java GC 日志详细图解
- GC日志分析工具汇总
- [置顶] 分析Java死锁:分析jstack日志