下面给出各种可以用户设置堆大小的命令行参数。注释列提供了一些设置参数的初级或高级建议。此外,后面还会给出更多的详细建议。
参数 | 描述 | 注释 |
-Xms<size> | 设置堆的最小值 | 在生产阶段,最小和最大堆值设置为相同的值 |
-Xmx<size> | 设置堆的最大值 | |
-XX:NewSize=<size> | 设置年轻代的最小值 | 在生产阶段,最小和最大年轻代的值设为相同的值 |
-XX:MaxNewSize=<size> | 设置年轻代的最大值 | |
-XX:NewRatio=<number> | 设置年轻代和年老代的大小比例。例如,数值为2时 年老代将会是年轻代大小的2倍。 | 使用NewSize/MaxNewSize参数或NewRatio参数,但不要两个参数都使用 |
-XX:SurvivorRatio=<number> | 设置eden space和剩余空间的大小比例。例如,剩余空间比例为8时,eden space是任一剩余空间大小的8倍。 | 基于年轻代大小改变比例。比例值为8适用于 小的年轻代(如10M),32适用于比较大的年轻代(如100M)。 |
-XX:MaxTenuringThreshold=<number> | 表示一个对象在被自动放置于年老代之前必须存活的次要回收的次数 | 一般应该使用的值为32 |
-XX:MaxPermSizse=<size> | 设置永久代的大小 | 在用完空间后在设置永久代 |
-XX:+UserTLAB | 在eden space里给应用程序的每一个线程提供它自己的分配区域(线程本地分配块TLAB)。注意它是一个布尔型选项, 用plus(+)可以启动它,用minus(-)(-XX:-UseTLAB)可以禁用它 | 主要对多处理器系统有利 |
-XX:TLABSize=<size> | 每一个TLAB的大小 | 确保年轻代空间足够为应用程序里的每一个线程保存所有的TLAB。应该分别使用64KB、128KB和256KB进行尝试 |
注意:1.<size>是一个表示字节数量的浮点数,在其后面加上K、M、G后缀分别代表KB、MB、GB。
2.<number>是一个浮点数。