-Xss 设置每个线程可使用的内存大小,即栈的大小。
-Xms 堆内存的最小值,默认为物理内存的1/64。
-Xmx 堆内存的最大值,默认为物理内存的1/4。
-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn。
在相同物理内存下,减小-Xss 这个值能生成更多的线程,如果设置过小,可能会出现栈溢出;如果该值设置过大,影响创建线程的数量,如果是多线程的应用,就会出现内存溢出的错误。
总结:
Xms:初始堆大小
-Xmx:最大堆大小
-Xmn:新生代大小
-XX:NewRatio:设置新生代和老年代的比值。如:为3,表示年轻代与老年代比值为1:3
-XX:SurvivorRatio:新生代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:为3,表示Eden:Survivor=3:2,一个Survivor区占整个新生代的1/5
-XX:MaxTenuringThreshold:设置转入老年代的存活次数。如果是0,则直接跳过新生代进入老年代
-XX:PermSize、-XX:MaxPermSize:分别设置永久代最小大小与最大大小(Java8以前)
-XX:MetaspaceSize、-XX:MaxMetaspaceSize:分别设置元空间最小大小与最大大小(Java8以后)