一、堆内存分配:

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64

JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4

默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。

因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。对象的堆内存由称为垃圾回收器的自动内存管理系统回收。

二、非堆内存分配:

-XX:PermSize:设置非堆内存初始值,默认是物理内存的1/64;

XX:MaxPermSize:设置最大非堆内存的大小,默认是物理内存的1/4。

-Xmn2G:设置年轻代大小为2G。

-XX:SurvivorRatio,设置年轻代中Eden区与Survivor区的比值。