垃圾收集算法思路:把对象按照寿命长短分组,分为年轻代和年老代,新创建对象被分在年轻代,如果对象经过几次回收后仍然存活,那么再把这个对象分到年老代。

年老代的收集频度不像年轻代的频繁,这样就减少了每次垃圾收集时所扫描的对象数量,从而提高垃圾回收效率

Young : 分为eden区和两个Survivor区,新建对象都在eden区,当eden区满后触发minor GC ,将Eden区仍然存活的对象复制到其中一个survivor区,再把另一个survivor区中的存活对象复制到这个survivor区,以保证始终有一个survivor区是空的。

Old:一种存放的是Young区的survivor满后触发minor GC后仍存活的对象,另一种survivor区中对象足够老,也直接存放到old区,如果old区满了,将会触发Full GC回收整个堆内存

Perm:存放的主要是类class对象,如果一个类被频繁加载,也可能导致perm区满,perm区的垃圾回收也是由Full GC触发

注:-Xmx:表示堆的最大大小 ,Xms:表示初始化大小

 

jstat  -gcutil [pid][intervel][count] :例:jstat -gcutil 1286 500 100

S0:表示Head上的Survivor space 0 区已使用空间百分比

S1:表示Head上的Survivor space 1 区已使用空间百分比

E:表示Head上的Eden space  区已使用空间百分比

O:表示Head上的Old space  区已使用空间百分比

P:表示Perm space  区已使用空间百分比

YGC:表示从应用程序启动到采样时发生Young GC的次数

YGCT:表示从应用程序启动到采样时发生Young GC所用的时间(秒)

FGC:表示从应用程序启动到采样时发生Full GC的次数

FGCT:表示从应用程序启动到采样时发生Full GC所用的时间(秒)

GCT:表示从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

posted on 2015-06-10 17:06  激战  阅读(165)  评论(0编辑  收藏  举报