JVM之其他情况

JVM之其他情况

 

JVM优化时遇到的场景

 

场景一

      一些应用分配了一些少量的非常大的长时间存活的对象。这样的场景需要需要young代的空间比old代更大。

 

 

场景二

      一些应用会经历很少的对象转移。这样的场景可能需要old代的空间远远大于存活对象的大小,由于old的占用量增长率很小。

 

扫描二维码关注公众号,回复: 516318 查看本文章

 

场景三

      一些应用有小延迟需求,会使用CMS垃圾回收器,而且使用小young代空间(以致于MinorGC时间更短),以及大的old代空间。在这种配置下,对象会快速的从young代移动到old代,替代了高效老化对象。另外,CMS垃圾回收移动后的对象,碎片的可能性通过大的old代空间来解决。

 

 

场景四

      大量临时对象,这时应该用更大的年轻代,更小的老年代;大新生代延长普通GC的周期,但增加每次GC的时间,小的老年代,会导致更频繁的Full GC。

 

 

场景五

      大量持久对象,这时应该用更小的年轻代,更大的老年代;小的新生代导致GC频繁,但每次GC的时间减少了,大的老年代减少了GC的频率。

 

 

调节经验

 

  1. 本着Full GC尽量少的原则,让老年代尽量缓存重用对象,JVM  1:2
  2. 观察一段时间,看它在峰值时,老年代会占用多少内存,在不影响GC的前提下,根据实际情况加大新生代,比如加大到 1:1,但给老年代至少预留三分之一的增长空间。

 

 

参考:

http://blog.csdn.net/zhoutao198712/article/details/7842659

猜你喜欢

转载自youyu4.iteye.com/blog/2356857