JVM内存相关的参数及其说明
JVM 堆内存(heap)设置选项
| 参数格式
| 说 明
|
设置新对象生产堆内存(Setting the Newgeneration heap size)
| -XX:NewSize
| 通过这个选项可以设置Java新对象生产堆内存。在通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值-XX:NewSize是最大堆内存(maximum heap size)的四分之一。增加这个选项值的大小是为了增大较大数量的短生命周期对象 增加Java新对象生产堆内存相当于增加了处理器的数目。并且可以并行地分配内存,但是请注意内存的垃圾回收却是不可以并行处理的
|
续表
JVM 堆内存(heap)设置选项
| 参数格式
| 说 明
|
设置最大新对象生产堆内存(Setting the maximum New generation heap size)
| -XX:MaxNewSize
| 通过这个选项可以设置最大Java新对象生产堆内存。通常情况下这个选项的数值为1 024的整数倍并且大于1MB 其功用与上面的设置新对象生产堆内存-XX:NewSize相同
|
设置新对象生产堆内存的比例(Setting New heap size ratios)
| -XX:SurvivorRatio
| 新对象生产区域通常情况下被分为3个子区域:伊甸园,与两个残存对象空间,这两个空间的大小是相同的。通过用-XX:SurvivorRatio=X选项配置伊甸园与残存对象空间(Eden/survivor)的大小的比例。你可以试着将这个值设置为8,然后监控、观察垃圾回收的工作情况
|
设置堆内存池的最小值 (Setting minimum heap size)
| -Xms
| 通过这个选项可以要求系统为堆内存池分配内存空间的最小值。通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值(-Xms)与最大堆内存相同,以降低垃圾回收的频度
|
设置堆内存池的最大值(Setting maximum heap size)
| -Xmx
| 通过这个选项可以要求系统为堆内存池分配内存空间的最大值。通常情况下这个选项的数值为1 024的整数倍并且大于1 MB 一般情况下这个值(-Xmx)与最小堆内存(minimum heap size –Xms)相同,以降低垃圾回收的频度
|
取消垃圾回收
| -Xnoclassgc
| 这个选项用来取消系统对特定类的垃圾回收。它可以防止当这个类的所有引用丢失之后,这个类仍被引用时不会再一次被重新装载,因此这个选项将增大系统堆内存的空间
|
设置栈内存的大小
| -Xss
| 这个选项用来控制本地线程栈的大小,当这个选项被设置的较大(>2MB)时将会在很大程度上降低系统的性能。因此在设置这个值时应该格外小心,调整后要注意观察系统的性能,不断调整以期达到最优
|
根据表2-1中所描述的参数意义,我们可以在启动应用时为JVM设置相应的参数值以提高系统的性能,例如下面的例子:
java -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -Xms512m
-Xmx512m MyApplication