JVMでのXms
およびXmx
パラメータの使用方法を説明してください。それらのデフォルト値は何ですか?
フラグXmx
は、Java仮想マシン(JVM)の最大メモリー割り当てプールを指定し、Xms
は初期メモリー割り当てプールを指定します。
これは、あなたのJVMがXms
量のメモリで起動され、最大でXmx
量のメモリを使用できることを意味します。たとえば、次のようにJVMを起動すると、256 MBのメモリで起動し、プロセスが最大2048 MBのメモリを使用できるようになります。
Java -Xms256m -Xmx2048m
メモリフラグは、キロバイト、メガバイトなどのさまざまなサイズで指定することもできます。
-Xmx1024k
-Xmx512m
-Xmx8g
Xms
フラグはデフォルト値を持たず、Xmx
フラグは通常256MBのデフォルト値を持ちます。これらのフラグの一般的な使い方は、あなたがJava.lang.OutOfMemoryError
に遭遇したときです。
これらの設定を使用するときは、これらの設定はJVMの heap 用であり、JVMはヒープに割り当てられたサイズ以上のメモリを使用できることに注意してください。 Oracleのドキュメント から:
JVMは単なるヒープよりも多くのメモリを使用することに注意してください。たとえば、Javaメソッド、スレッドスタック、およびネイティブハンドルは、JVMの内部データ構造と同様に、ヒープとは別のメモリに割り当てられます。
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 arguments にあります。 -Xmx800m -Xms500m
は次のように入力できます。
質問自体はすでに上で対処されています。デフォルト値の一部を追加するだけです。
http://docs.Oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html のとおり
Xmxのデフォルト値は、プラットフォームとシステムで利用可能なメモリ容量によって異なります。