请解释 Xms
和 Xmx
参数在 JVM 中的用法。它们的默认值是多少?
原文由 Pankaj 发布,翻译遵循 CC BY-SA 4.0 许可协议
请解释 Xms
和 Xmx
参数在 JVM 中的用法。它们的默认值是多少?
原文由 Pankaj 发布,翻译遵循 CC BY-SA 4.0 许可协议
运行命令 java -X
你会得到所有 -X
选项的列表:
C:\Users\Admin>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xdiag show additional diagnostic messages
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size.........................
-Xmx<size> set maximum Java heap size.........................
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
-Xshare:off do not attempt to use shared class data
-Xshare:auto use shared class data if possible (default)
-Xshare:on require using shared class data, otherwise fail.
-XshowSettings show all settings and continue
-XshowSettings:all show all settings and continue
-XshowSettings:vm show all vm related settings and continue
-XshowSettings:properties show all property settings and continue
-XshowSettings:locale show all locale related settings and continue
-X 选项是非标准的,如有更改,恕不另行通知。
我希望这会帮助您理解 Xms
, Xmx
以及许多其他最重要的事情。 :)
原文由 Rupesh Yadav 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
标志
Xmx
指定Java虚拟机(JVM)的最大内存分配池,而Xms
指定初始内存分配池。这意味着您的 JVM 将以
Xms
内存量启动,并且最多可以使用Xmx
内存量。例如,启动如下所示的 JVM 将以 256 MB 的内存启动它,并允许进程使用最多 2048 MB 的内存:还可以指定不同大小的内存标志,例如千字节、兆字节等。
Xms
标志没有默认值,Xmx
通常具有默认值 256 MB。这些标志的常见用途是当您遇到java.lang.OutOfMemoryError
时。使用这些设置时,请记住这些设置是针对 JVM 堆 的,并且 JVM 可以而且将会使用比分配给堆的大小更多的内存。来自 Oracle 的文档: