web-dev-qa-db-ja.com

JVMを起動するときの-Xmsおよび-Xmxパラメーターは何ですか?

JVMでのXmsおよびXmxパラメータの使用方法を説明してください。それらのデフォルト値は何ですか?

835
Pankaj

フラグ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の内部データ構造と同様に、ヒープとは別のメモリに割り当てられます。

1140
hexacyanide

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オプションは標準的ではなく、予告なく変更されることがあります。

これがXmsXmx、その他最も重要なことを理解するのに役立つことを願っています。 :)

272
Rupesh Yadav

IDEで指定できます。たとえば、Eclipseの場合は 実行設定 VM arguments にあります。 -Xmx800m -Xms500mは次のように入力できます。

Enter image description here

19

質問自体はすでに上で対処されています。デフォルト値の一部を追加するだけです。

http://docs.Oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html のとおり

Xmxのデフォルト値は、プラットフォームとシステムで利用可能なメモリ容量によって異なります。

12
Abhishek Aich