请解释 JVM 中 Xms
和 Xmx
参数的使用。它们的默认值是多少?
最佳答案
标志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's documentation :
Note that the JVM uses more memory than just the heap. For example Java methods, thread stacks and native handles are allocated in memory separate from the heap, as well as JVM internal data structures.
关于java - 启动JVM时的-Xms和-Xmx参数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57627067/