Java 选项 -Xmx 代表什么?

java -Xmx1024m filename

-Xmx是什么意思?

861561 次浏览

应用程序的最大堆使用是1024 MB

C:\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
-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.


The -X options are non-standard and subject to change without notice.

-Xmx选项将修改虚拟机的最大堆空间。java -Xmx1024m意味着虚拟机最多可以分配1024MB。通俗地说,这意味着应用程序最多可以使用1024MB的内存。

看这里:Java工具文档,它说,

< p > - xmxn
指定内存分配池的最大大小,以字节为单位。该值必须是1024的倍数,且大于2MB。附加字母k或k表示千字节,或m或m表示兆字节。默认值为64MB。在Solaris 7和Solaris 8 SPARC平台上,这个值的上限大约是4000m,在Solaris 2.6和x86平台上是2000m,减去开销。例子:< / p >
           -Xmx83886080
-Xmx81920k
-Xmx80m

因此,简单地说,您将Java堆内存设置为可用内存中的最大1024 MB,而不是更多。

注意在-Xmx和1024m之间有NO SPACE

不管你用的是大写还是小写。例如:“-Xmx10G”和“-Xmx10G”做完全相同的事情。

-Xmx设置堆的最大大小