Pan*_*kaj 911 java parameters jvm memory-management
请解释JVM中的使用Xms和Xmx参数.它们的默认值是什么?
hex*_*ide 1250
该标志Xmx指定Java虚拟机(JVM)的最大内存分配池,同时Xms指定初始内存分配池.
这意味着您的JVM将以Xms大量内存启动,并且可以使用最大Xmx内存量.例如,启动如下所示的JVM将启动256 MB内存,并允许进程使用最多2048 MB的内存:
java -Xms256m -Xmx2048m
Run Code Online (Sandbox Code Playgroud)
内存标志也可以指定多种大小,例如千字节,兆字节等.
-Xmx1024k
-Xmx512m
-Xmx8g
Run Code Online (Sandbox Code Playgroud)
该Xms标志没有默认值,Xmx通常默认值为256 MB.这些标志的常见用途是遇到时java.lang.OutOfMemoryError.
使用这些设置时,请记住这些设置是针对JVM的堆的,并且JVM可以/将使用的内存多于分配给堆的大小.来自Oracle的文档:
请注意,JVM使用的内存多于堆.例如,Java方法,线程堆栈和本机句柄分配在与堆不同的内存中,以及JVM内部数据结构中.
Rup*_*dav 287
运行该命令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
Run Code Online (Sandbox Code Playgroud)
-X选项是非标准的,如有更改,恕不另行通知.
我希望这将有助于您了解Xms,Xmx以及其他更重要的事情.:)
小智 16
您可以在IDE中指定它.例如,对于运行配置中的 Eclipse → VM参数.你输入-Xmx800m -Xms500m:

小智 12
问题的主要部分已在上文讨论过.只需添加部分默认值.
根据http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Xmx的默认值取决于系统中可用的平台和内存量.
laz*_*ead 12
-Xms用于启动的初始堆大小,但是,在工作过程中, 由于用户不活动或 GC 迭代,堆大小可能小于-Xms。这不是所需的最小堆大小。
-Xmx最大堆大小