1.首先要知道堆内存中包含什么:
堆内存中有两部分,一部分叫做年轻代,一部分叫做老年代。而年轻代中包含3个分区,分别是E区也可以叫伊甸园区,S0(幸存区)和S1(幸存区)
2.如何设置并分配堆内存大小
通常只需要设置四个参数就可以完成堆内存的分配问题,分别是 ①-Xms:最小堆内存 ②-Xmx:最大堆内存 ③-Xmn:堆中新生代的内存 ④-XXSurvivorRatio=幸存区与E区大小比值 (注:一般情况下最小堆内存与最大堆内存设置为一样的)
事例:-Xms64m -Xmx64m -Xmn32m -XX:SurvivorRatio=6
如上例中,堆的最小最大内存均为64m,新生代内存占32m,那么剩下的就是老年代的内存也就是64-32=32m。新生代中幸存区(2个)与E区大小的比值:幸存区两个各占1,而比值为6 那么比值就是2:6,那么总共8份,E区占6份大小为24m,两个幸存区各占一份均为4m。