设置新生代大小为 1M,-XX:SurvivorRatio=2, 结果 eden space 为 0K,from space 为 512K,to space 为 512K。是因为 from 和 to 有最小值限制吗?不太明白,求各位大佬指教~
vm 参数: -Xmx20m -Xms20m -Xmn1m -XX:SurvivorRatio=2 -XX:+PrintGCDetails
版本:jdk1.7.0_79
代码和结果如下:
public class NewSizeDemo { public static void main(String[] args){ byte[] b = null; for (int i=0; i<10; i++){ b = new byte[1*1024*1024]; } } } Heap PSYoungGen total 512K, used 0K [0x00000007fff00000, 0x0000000800000000, 0x0000000800000000) eden space 0K, -2147483648% used [0x00000007fff00000,0x00000007fff00000,0x00000007fff00000) from space 512K, 0% used [0x00000007fff80000,0x00000007fff80000,0x0000000800000000) to space 512K, 0% used [0x00000007fff00000,0x00000007fff00000,0x00000007fff80000) ParOldGen total 19456K, used 11573K [0x00000007fec00000, 0x00000007fff00000, 0x00000007fff00000) object space 19456K, 59% used [0x00000007fec00000,0x00000007ff74d5a0,0x00000007fff00000) PSPermGen total 21504K, used 2996K [0x00000007f9a00000, 0x00000007faf00000, 0x00000007fec00000) object space 21504K, 13% used [0x00000007f9a00000,0x00000007f9ced030,0x00000007faf00000) 