回答:
フラグXmx
は、Java仮想マシン(JVM)の最大メモリ割り当てプールをXms
指定し、初期メモリ割り当てプールを指定します。
つまり、JVMはXms
大量のメモリで起動され、最大Xmx
量のメモリを使用できるようになります。たとえば、以下のようにJVMを起動すると、256 MBのメモリで起動し、プロセスが最大2048 MBのメモリを使用できるようになります。
java -Xms256m -Xmx2048m
メモリフラグは、キロバイト、メガバイトなど、さまざまなサイズで指定することもできます。
-Xmx1024k
-Xmx512m
-Xmx8g
Xms
フラグはデフォルト値はありません、そしてXmx
典型的には256メガバイトのデフォルト値を有しています。これらのフラグの一般的な用途は、に遭遇したときですjava.lang.OutOfMemoryError
。
これらの設定を使用する場合、これらの設定はJVMのヒープ用であり、JVMはヒープに割り当てられたサイズよりも多くのメモリを使用できる、または使用することに注意してください。Oracleのドキュメントから:
JVMはヒープよりも多くのメモリを使用することに注意してください。たとえば、Javaメソッド、スレッドスタック、ネイティブハンドルは、JVM内部データ構造と同様に、ヒープとは別のメモリに割り当てられます。
OutOfMemoryError
が発生します。
-Xms256m
で開始するメモリの量を明確に表す方法は、「256 MB」ではなく「256 MiB」です。これは、10の累乗ではなく2の累乗を使用するためです。en.wikipedia.org/wiki/Binary_prefixを参照してください。さらに、Survivorスペースの追加プール用に使用できないスペースが確保されるため、実際に使用できるメモリ量は、Runtime.getRuntime().maxMemory()
-Xmxで指定された値よりも少なくなります
コマンド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
だけでなく、最も重要な他の多くのことを理解するのに役立つことを願っています。:)
IDEで指定できます。たとえば、実行構成の Eclipseの場合→ VM引数。あなたは入ることができる-Xmx800m -Xms500m
よう
質問自体はすでに上記で対処されています。デフォルト値の一部を追加するだけです。
あたりとしてhttp://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html
Xmxのデフォルト値は、プラットフォームとシステムで使用可能なメモリの量によって異なります。
-Xmx128m -Xms64m
には、付近のピークができ275m
RESは、MEM、しかし、使用している場合-Xmx128m -Xms128m
、それは付近のピークができ550m
RESがベストなものが... GCと何が起こるかを見て強調することであるJavaの8を使用したmemと