本文从堆栈内存、回收器GC两方面介绍常见的JVM参数并提供配置示例。
参数项 | 说明 | 案例 |
-Xmx | 设置最大堆大小 | -Xmx3550m ,设置JVM最大可用内存为3550 MB |
-Xms | 设置JVM初始内存 | -Xms3550m ,设置JVM初始内存为3550 MB。此值建议与-Xmx 相同,避免每次垃圾回收完成后JVM重新分配内存。 |
-Xmn | 设置年轻代大小 | -Xmn2g ,设置年轻代大小为2 GB。整个JVM内存大小=年轻代大小+年老代大小+持久代大小。持久代一般固定大小为64 MB,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 |
-Xss | 设置线程的栈大小 | -Xss128k ,设置每个线程的栈大小为128 KB。 |
-XX:NewRatio=n | 设置年轻代和年老代的比值 | -XX:NewRatio=4 ,设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。如果设置为4,那么年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5。 |
-XX:SurvivorRatio=n | 年轻代中Eden区与两个Survivor区的比值。 | -XX:SurvivorRatio=4 ,设置年轻代中Eden区与Survivor区的大小比值。如果 |