标志Xmx
指定Java虚拟机(JVM)的最大内存分配池,而标志Xms
指定初始内存分配池.
这意味着您的JVM将以Xms
个内存量启动,最多可以使用Xmx
个内存量.例如,像下面这样启动一个JVM将以256 MB的内存启动它,并允许进程使用多达2048 MB的内存:
java -Xms256m -Xmx2048m
内存标志也可以以不同的大小指定,例如千字节、兆字节等.
-Xmx1024k
-Xmx512m
-Xmx8g
Xms
标志没有默认值,Xmx
的默认值通常为256 MB.这些标志的一个常见用法是当你遇到一个java.lang.OutOfMemoryError
.
在使用这些设置时,请记住这些设置是针对JVM的heap的,JVM可以而且将使用比分配给堆的大小更多的内存.从Oracle's documentation开始:
请注意,JVM使用的内存比堆多.例如,Java方法、线程堆栈和本机句柄被分配在与堆以及JVM内部数据 struct 分开的内存中.