1、晋升及Servivor空间调优级
(1)设计Survivor空间的初衷是为了让对象在新生代停留更多的GC周期。 这个设计增大了对象晋升到老年代之前被回收释放的几率。
(2)如果Survivor 空间过小, 对象会直接晋升到老年代, 从而触发更多的老年代 GC。
(3)解决这个问题的最好方法是增大堆的大小( 或者至少增大新生代), 让JVM来处理Survivor 空间的回收。
(4) 有的情况下, 我们需要避免对象晋升到老年代, 调整晋升阈值或者Survivor 空间的大小可以避免对象晋升到老年代。
2、分配大对像
(1)对需要分配大量大型对象的应用, TLAB空间的调整就变得必不可少( 不过,通常情况下,我们更推荐在应用程序中使用小型对象的做法)。
(2)如果堆的初始大小跟最大值相差 很大, 这种堆会有大量 的G1分区, 在这种情况下, 应该增大G1分区的大小。
(3)如果要分配的对象大小超过了G1收集器分区容量的一半, 对于这种应用程序, 我们应该增大G1分区的容量, 让 G1分区能 更好地适配这些对象。