-Xss规定了每一个线程堆栈的大小。通常状况下256K是足够了。影响了此进程中并发线程数大小。默认JDK1.4中是256K,JDK1.5+是1M -Xms初始的Heap的大小。java
-Xmx最大Heap的大小。并发
在不少状况下,-Xms和-Xmx设置成同样的。这么设置,是由于当Heap不够用时,会发生内存抖动,影响程序运行稳定性。性能
堆大小设置 JVM中最大堆大小有三方面限制:相关操做系统的数据模型限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,通常限制在1.5G-2G;64位操做系统对内存无限制。操作系统
典型设置: 一、Java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -Xmx3550m:设置JVM最大可用内存为3550M。 -Xms3550m:设置JVM促使内存为3550M。此值能够设置与-Xmx相同,以免每次垃圾回收完成后JVM从新分配内存。 -Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小+年老代大小+持久代大小。持久代通常固定大小为64m,因此增大年轻代后,将会减小年老大大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -Xss128k:设置每一个线程的堆栈大小。JDK5.0之后每一个线程堆栈大小为1M,之前每一个线程堆栈大小为256K。线程
二、java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0对象
-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:设置持久代大小为16mio
-xx:MaxTenuringThreshold=0:设置垃圾最大年龄。若是设置为0的话,则年轻代对象不通过Survivor区,直接进入年老代。对于年老代比较多的应用,能够提升效率。若是将此值设置为一个较大值,则年轻代对象会在Survivor区进行屡次复制,这样能够增长对象在年轻代存活的时间。效率