SurvivorRatio

  • SurvivorRatio表示Eden/一个Survivor的比值,默认是8,最小值为1

MinSurvivorRatio

  • MinSurvivorRatio表示在GC之后,如果需要重新计算survivor的值(有个参数叫UseAdaptiveSizePolicy(开启自适应调节策略)开启的时候才会去计算它的值),survivor的新值不能低于根据它算出来的值

InitialSurvivorRatio

  • lnitialSurvivorRatio表示新生代初始可用内存/survivor的比值,默认情况下lnitialSurvivorRatio为8,
    那表示From和To各自占整个新生代的1/8,而Eden占(1-2*1/8=3/4),并且只在启动的时候有用

  1. CMS GC下如果MaxTenuringThreshold(可以设置一个次数,默认是15次,超过15次,则会将幸存者区幸存下来的转去老年区)设置为0,相当于每次GC都直接晋升到老生代,此时如果SurvivorRatio没有设置的话,会将SurvivorRatio默认设置为1024

  2. lnitialSurvivorRatio不能比3小,至少是3,否则会被JVM自动调整为3,MinSurvivorRatio也是一样的

  3. 如果我们JVM参数里设置过SurvivorRatio,但是没有设置InitialSurvivorRatio,那么lnitialSurvivorRatio的值会被默认设置为SurvivorRatio+2,MinSurvivorRatio在这种情况下也是一样的

  4. InitialSurvivorRatio和MinSurvivorRatio只针对PS GC算法有用