启动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的文档:
请注意,JVM使用的内存不仅仅是堆。 例如,Java方法,线程堆栈和本地句柄分配在独立于堆的内存中,以及JVM内部数据结构中。
只需运行命令java -X
,就会得到所有-X
选项的列表:
C:UsersAdmin>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以及其他更重要的事情。 :)
您可以在IDE中指定它。 例如,对于运行配置中的Eclipse→VM参数。 您输入-Xmx800m -Xms500m
:
上一篇: What are the Xms and Xmx parameters when starting JVMs?