JVM内存分配策略

JDK1.8 大对象会直接被分配到老年代演示;

vm 参数:-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8

输出:

·

更改allocation4的大小,老年代中object space内存被使用的百分比会随之改变

对象直接进入老年代的集中情况

1、分配的对象大小大于eden space。适合所有收集器。

2、eden space剩余空间不足分配,且需要分配对象内存大小不小于eden space总空间的一半,直接分配到老年代,不触发Minor GC。适合-XX:+UseParallelGC、-XX:+UseParallelOldGC,即适合Parallel Scavenge。

3、大对象直接进入老年代,使用-XX:PretenureSizeThreshold参数控制,适合-XX:+UseSerialGC、-XX:+UseParNewGC、-XX:+UseConcMarkSweepGC,即适合Serial和ParNew收集器。

原文地址:https://www.cnblogs.com/shuaixiaobing/p/12388744.html