一尘不染

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

java

请说明JVM 中Xms和Xmx参数的使用。它们的默认值是多少?


阅读 961

收藏
2020-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内部数据结构分开分配在内存中。

2020-02-25