JVM堆新生代分配

新生代分配

-Xmn,设置新生代的大小
设置新生代越大,老年代就会越小

这个参数,对系统性能与GC行为有很大的影响
一般,新生代设置为整个堆空间的1/3~1/4左右

package com.bjsxt.base001;

public class Test02 {

    public static void main(String[] args) {

        byte[] b = null;
        // 连续向系统申请10MB空间
        for (int i = 0; i < 10; i++) {
            b = new byte[1 * 1024 * 1024];
        }
    }
}

程序分析
每次分配1M,循环10次
总共需要分配10M空间

测试

第一次分配

-Xms20mXmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC

新生代,分配1M

这里写图片描述
第二次分配

-Xms20mXmx20mXmn7m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC

新生代,分配7M
这里写图片描述

猜你喜欢

转载自blog.csdn.net/nangeali/article/details/81807276