小编典典

启动JVM时-Xms和-Xmx参数是什么?

all

请解释 JVM 中XmsXmx参数的使用。它们的默认值是什么?


阅读 210

收藏
2022-02-25

共1个答案

小编典典

该标志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 的 的,并且 JVM 可以并且将使用比仅分配给堆的大小更多的内存。来自Oracle
的文档

请注意,JVM 使用的内存不仅仅是堆。例如,Java 方法、线程堆栈和本机句柄被分配在与堆分开的内存中,以及 JVM 内部数据结构中。

2022-02-25