HOWTO · Java
JVM -XSS オプション
このチュートリアルでは、Java の -Xss オプションについて説明します。
Java アプリケーションにはスレッドがあり、各スレッドにはスタックがあります。 仮想マシンのスタックは、主に戻りアドレス、メソッド呼び出しの引数などを保持するために使用されます。
大規模な構造を持つスレッドが再帰アルゴリズムを使用して処理しようとすると、大きなサイズのスタックが必要になる場合があります。
Java 仮想マシンまたは JVM では、スタックには使用可能なデフォルト サイズがあります。 すべての JVM スレッドには、Call Stack 情報、結果、およびローカル変数を格納する Private Native Stack が含まれています。
現在、JVM スタックのサイズは、主に JVM が実行されているオペレーティング システムに依存します。
| オペレーティング·システム | JVM スタックのデフォルト サイズ |
|---|---|
| Linux | 1MB |
| マックOS | 1MB |
| Oracle Solaris | 1MB |
| ウィンドウズ | JVM スタックはシステム全体のスタック サイズを使用します |
この記事では、Java の -Xss について説明し、JVM スタックのデフォルト サイズを変更する方法を説明します。
-Xss フラグは、主に JVM スタックのサイズを変更するために使用されます。 JVMスタックのサイズを変更できる以下のコマンドを見てみましょう。
-Xss を使用して JVM スタックのサイズを変更する
JVM スタックの現在のデフォルト サイズを変更するには、次のコマンドに従います。
java -Xss1048576
上記のコマンドで、数字 1048576 は 1 MB を意味します。 ただし、計算が気に入らない場合は、以下のコマンドを編集できます。
java -Xss1024k
上記の例では、1024k が 1 MB を意味することがわかっているため、1048576 の代わりに 1024k を使用しました。 ただし、以下のように、コマンドで 1 MB を直接指定できます。
java -Xss1m
JVM スタックのサイズを変更する別の方法
フラグ -XX を使用して JVM スタックの現在のサイズを変更する別の方法もあります。 これを使用するには、以下のコマンドに従います。
java -XX:ThreadStackSize=1024
いくつかの重要な注意事項
これらのコマンドを使用するときは、いくつかの重要な規則に従う必要があります。
- 最大値の 1 GB を超えるサイズは提供できません。
- 最小値 1 MB 未満のサイズは提供できません。
これらのコマンドは、Java 仮想マシンまたは JVM 用であることに注意してください。