GC中新生代进入老年代的方式汇总
2020-12-16 本文已影响0人
迦叶_金色的人生_荣耀而又辉煌
1.新生代的正常复制算法进入老年代
通过新生代的复制算法,年龄达到15仍存活的可进入(JVM参数MaxTenuringThreshold决定,默认15)
2.空间担保
如果Survivor存不下活跃的对象,则直接进入到old区,age=2,这种方式叫空间担保
3.动态年龄
survivor中已满,且至少有50%的对象年龄大于平均年龄,则会把这些大于平均年龄的对象直接写到老年区中。
4.大对象直接进入老年代
大对象在Survivor里存不下,也直接进入old区
tips:只针对Serial和Parnew收集器生效,PS收集器无效
List<byte[]> result = new ArrayList<>();
while (true){
result.add(new byte[1024*1024*3]);
Thread.sleep(500);
}
jvm配置:-XX:PretenureSizeThreshold=1M -XX:+UseParNewGC