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

新手上路,请多包涵

请解释 XmsXmx 参数在 JVM 中的用法。它们的默认值是多少?

原文由 Pankaj 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

标志 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 内部数据结构分开的内存中分配。

原文由 hexacyanide 发布,翻译遵循 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 选项是非标准的,如有更改,恕不另行通知。

我希望这会帮助您理解 XmsXmx 以及许多其他最重要的事情。 :)

原文由 Rupesh Yadav 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题