年轻代与老年代的调优笔记
年轻代与老年代的调优(笔记整理) 几个常见名词 年轻代(young 区) 从年轻代空间(包括Eden和Survivor 区域)回收内存被称为 Minor GC 空间太小可能导致对象直接进入 old区 。如果old区 满了,会触发full gc。但也不能过大,过大会引起回收耗时过长,导致应用阻塞。 老年代(old 区) 从老年代GC称为Major GC 空间过小会产生old区小碎片,放不下大对象,引起频繁full gc。如果用了缓存,old区也要适当大些,同时缓存不应无限增长。 存活区(Survivor) Survivor的存在意义,就是减少被送到老年代的对象,进而减少Full GC的发生。 伊甸园(Eden) 整个堆内存(heap)=young+old GC(垃圾回收机制) 堆区有两个Survivor区,新建的对象会存活在在Eden中。Eden区如果没有足够的空间时会引发一次young区的GC。 在经历一次MinorGC之后,Eden中的存活对象就会被移动到第一块survivor space-S0,此时Eden被清空; 等Eden区再次填满,就再触发一次Minor GC,Eden和S0中的存活对象又会被复制送入第二块survivor space-s1;此时S0和Eden被清空,然后下一轮S0与S1交换角色。 如果 Survivor的空间不足或经历16次Minor