JVM参数
标签(空格分隔): JVM
重要参数
-Xms and -Xmx (or:-XX:InitialHeapSize and -XX:MaxHeapSize)
-Xms的作用是 定义堆的初始化大小,默认值是 物理内存的1/64(<1GB),默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%,JVM就会增大堆直到-Xmx的最大限制。
-Xmx的作用是 定义最大堆的大小,默认为物理内存的1/4(< 1GB),默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到-Xms的大小。
一般来说,这两个参数的数值单位是Byte,但同时它们也支持使用其他单位(k,m,g)。举个例子,下面的命令启动了一个初始化堆内存为128M,最大堆内存为2G,名为“MyAPP”的Java应用程序。
java -Xms128m -Xmx2g MyApp
在实际使用过程中,初始化堆内存的大小通常被视为堆内存大小的下界。然后JVM可以在运行时动态的调整堆内存的大小,所以理论上来说我们有可能会看到堆内存的大小小于初始化堆内存的大小。但是即使在非常低的堆内存使用下,我也从来没有遇到过这种情况。这种行为将会方便开发者和系统管理员,因为我们可以通过将-Xms和-Xmx设置为相同大小来获得一个固定大小的堆内存。 -Xms和-Xmx实际上是-XX:InitialHeapSize和-XX:MaxHeapSize的缩写。我们也可以直接使用这两个参数,它们所起得效果是一样的:
java -XX:InitialHeapSize=128m -XX:MaxHeapSize=2g MyApp
需要