基本原则:
优先分配到Eden区域
大对象直接进入老年代
长期存活的对象被分配到老年代
空间分配担保
动态对象的年龄判断
对象优先在Eden上分配
配置选用制定垃圾回收机制
大数组看一下日志
大对象直接进入老年代
gc在eden执行频率比较高,如果处理大对象性能消耗比较大。
所以将对象放入到老年代中
大对象的值设定 -XX:PretenureSizeThreshold
public class main{
public static int M = 10241024;
public static void main(String arges[]){
byte[] b1 = new byte[10M];
}
}
长期存活的对象将进入老年代
-XX:MaxTenuringThreshold
年龄计数器:
新生代垃圾回收算法复制算法,将对象复制到survivor中,这时候就有个年龄计数器
计数1,当达到一定次数,这个对象就会跑到老年代中
空间分配担保:
-XX:+(-)HandlePromotionFailure
先判断老年代是否能容纳下所有新生代内容
检查参数-XX:+(-)HandlePromotionFailure, +号为开启,-号为禁用
检测平均值即老年代最大的连接的内存空间是否大于历次晋升到老年代对象值的
平均大小