Java堆空间:
-Xms3g:初始化堆空间内存大小3g,默认是物理内存的1/64
-Xmx3g:最大堆空间内存大小3g,默认是物理内存的1/4
空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。
因此一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。
-XX:+HeapDumpOnOutOfMemoryError:可以让虚拟机在出现内存异常时,Dump出当前的内存堆转储快照,以便以后分析。
-Xss1m:创建线程占用的堆栈内存大小。在相同物理内存下,减小这个值能生成更多的线程,但操作系统对一个进程内的线程数还是有限制的,不能无限生成,建议在3000~5000左右。
-Xmn1g:年轻代的内存大小1g,对-XX:newSize、-XX:MaxnewSize两个参数的同时配置,年轻代Sun官方推荐配置为整个堆的3/8,通常设置为1/3或1/4。
-XX:newSize=n:表示新生代初始内存的大小。
-XX:MaxnewSize=n:表示新生代可被分配的内存的最大上限
-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代),设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5。
-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值.设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6。
-XX:MaxPermSize=16m:设置持久代大小为16m,持久代一般固定大小为64m。
-XX:MaxTenuringThreshold=0:设置垃圾最大年龄.如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。