-Xmssize
设置堆的最小值和初始值(以字节为单位)。必须是1024的整数倍,且大于1MB。千字节后面加k或K,兆字节后面加m或M,千兆后面加g或G。
下面的例子展示了如何使用不同的单位将分配的内存大小设置为6 MB:
- -Xms6291456
- -Xms6144k
- -Xms6m
如果不设置此选项,则初始大小将设置为为年老代和年轻代分配的大小之和。年轻代堆的初始大小可以使用-Xmn选项或-XX:NewSize选项设置。
注意-XX:InitalHeapSize选项也可以用来设置初始堆大小。如果它出现在命令行中的-Xms之后,那么初始堆大小将被设置为使用-XX:InitalHeapSize指定的值。
-Xmxsize
设置堆内存的最大值,单位为字节。必须是1024的整数倍,且大于2MB。千字节后面加k或K,兆字节后面加m或M,千兆后面加g或G。在运行时根据系统配置选择默认值。对于服务器部署,-Xms和-Xmx通常被设置为相同的值。
下面的例子展示了如何使用不同的单位将允许分配的内存的最大大小设置为80 MB:
- -Xmx83886080
- -Xmx81920k
- -Xmx80m
-Xmx选项等价于-XX:MaxHeapSize。
开发过程中,通常会将-Xms与-Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。
-Xmnsize
为年轻代(托儿所)设置在堆中的初始和最大值(以字节为单位)。千字节后面加k或K,兆字节后面加m或M,千兆后面加g或G。
堆的年轻代区域用于新生对象。在此区域执行GC的频率高于其他区域。如果年轻代的大小太低,那么将执行大量Minor GC。如果大小过高,则只执行Full GC,这可能需要很长时间才能完成。Oracle建议将年轻代的大小保持在总体堆大小的二分之一到四分之一之间。
以下示例显示如何使用不同的单位将年轻代的初始和最大大小设置为256MB:
- -Xmn256m
- -Xmn262144k
- -Xmn268435456
你也可以使用-XX:NewSize设置初始大小,使用-XX:MaxNewSize设置最大大小来代替-Xmn选项为年轻代设置堆的初始大小和最大大小。
-XX:NewSize=size
为年轻代(托儿所)设置堆的初始值(以字节为单位)。千字节后面加k或K,兆字节后面加m或M,千兆后面加g或G。
堆的年轻代区域用于新生对象。在此区域执行GC的频率高于其他区域。如果年轻代的大小太低,那么将执行大量Minor GC。如果大小过高,则只执行Full GC,这可能需要很长时间才能完成。Oracle建议将年轻代的大小保持在总体堆大小的二分之一到四分之一之间。
以下示例显示如何使用不同的单位将年轻代的初始大小设置为256MB:
- -XX:NewSize=256m
- -XX:NewSize=262144k
- -XX:NewSize=268435456
-XX:NewSize选项相当于-Xmn。
-XX:MaxNewSize=size
设置年轻代(托儿所)堆的最大值(以字节为单位)。默认值按照人体工程学设置。