jvm 虚拟机参数_新生代内存分配

1、参数

-Xmn    设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个参数对系统性能以及 GC 行为影响很大,新生代大小一般设置为真个堆内存的1/3到1/4
-XX:SurvivorRatio    用来设置新生代中 eden 区和 from/to 区的比例。含义 -XX:SurvivorRatio = eden/from = eden/to
-XX:NewRatio    设置新生代和老年代的比例 -XX:NewRatio = 老年代/新生代

2、测试代码

public static void main(String[] args) 
{
    //配置参数
    //-Xms20m -Xmx20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC
    
    byte[] b = null;
    for (int i = 0; i < 5; i++) 
    {
        //连续向系统申请 5m 空间
        b = new byte[1*1024*1024];
    }
}

3、控制台打印结果

 1 [GC [DefNew: 512K->256K(768K), 0.0279056 secs] 512K->440K(20224K), 0.0895553 secs] [Times: user=0.00 sys=0.00, real=0.09 secs] 
 2 Heap
 3  def new generation   total 768K, used 384K [0x00000000f9a00000, 0x00000000f9b00000, 0x00000000f9b00000)
 4   eden space 512K,  25% used [0x00000000f9a00000, 0x00000000f9a20348, 0x00000000f9a80000)
 5   from space 256K, 100% used [0x00000000f9ac0000, 0x00000000f9b00000, 0x00000000f9b00000)
 6   to   space 256K,   0% used [0x00000000f9a80000, 0x00000000f9a80000, 0x00000000f9ac0000)
 7  tenured generation   total 19456K, used 5304K [0x00000000f9b00000, 0x00000000fae00000, 0x00000000fae00000)
 8    the space 19456K,  27% used [0x00000000f9b00000, 0x00000000fa02e320, 0x00000000fa02e400, 0x00000000fae00000)
 9  compacting perm gen  total 21248K, used 2550K [0x00000000fae00000, 0x00000000fc2c0000, 0x0000000100000000)
10    the space 21248K,  12% used [0x00000000fae00000, 0x00000000fb07dbe0, 0x00000000fb07dc00, 0x00000000fc2c0000)
11 No shared spaces configured.

4、eclipse 配置 jvm 参数、分析打印结果。请打开下面链接

http://www.cnblogs.com/fangwu/p/8376326.html

原文地址:https://www.cnblogs.com/fangwu/p/8376693.html