jvm gc log研究

 

1 gc.log分析

http://crazier9527.iteye.com/blog/832315

http://coffeehc.iteye.com/blog/1066922

http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html

http://hi.baidu.com/sdausea/blog/item/c599ef13fcd3a7dbf6039e12.html

171.044(系统运行的时间3分多钟): [GC (普通gc)171.044: [DefNew: 已分配空间从35072K->4352K (39424K新生代可用空间), 0.0421702 secs(回收耗时)] 堆内存已分配空间从62774K->36785K(堆内存可用空间126848K), 0.0422766 secs] [Times: 用户操作耗时user=0.05 sys=0.00系统耗时, real=0.05 secs总耗时]

178.743: [Full GC (System) (全面gc耗时长)178.743: [Tenured年老代: 32042K->34338K(87424K), 0.5141614 secs] 49784K->34338K(126848K), [Perm持久代: 51906K->51906K(51968K)], 0.5143115 secs] [Times: user=0.51 sys=0.00, real=0.52 secs]

其中新生代+年老代的可用内存=堆可用内存总量(也就是jvm启动时的-Xms128m)

放翁的GC分析实例

http://blog.csdn.net/cenwenchu79/article/details/3125326

http://blog.csdn.net/cenwenchu79/article/details/3117534

http://harrywu304.blog.163.com/blog/static/84566032010111823731118/

 

对象晋升机制

ygc做步骤为:清空eden+from中所有no ref的对象占用的内存
将eden+from中的所有存活的对象copy到to中
在这个过程中一些对象将晋升到old中:
--to放不下的
--存活次数超过tenuring threshold的
重新计算Tenuring Threshold

http://bluedavy.me/?p=70

http://www.blogjava.net/decorator/archive/2012/10/23/390125.html

 

JAVA_OPTS="${JAVA_OPTS} -XX:SurvivorRatio=4"

JAVA_OPTS="${JAVA_OPTS} -XX:TargetSurvivorRatio=90"

JAVA_OPTS="${JAVA_OPTS} -XX:+PrintTenuringDistribution"

你可能感兴趣的:(jvm)