ページの先頭行へ戻る
Interstage Application Server V12.0.0 チューニングガイド
FUJITSU Software

9.4.2 スタックのチューニング

Javaアプリケーションで使用するスレッドのスタックのチューニング方法および、チューニングによる影響範囲を説明します。

チューニング方法

Java APIで生成するスレッドのスタックサイズは、“-Xss”オプションで指定することができます。

“-Xss”オプションは、バイト単位でスタックサイズを指定します。例えば、スタックサイズを512KBに設定する場合、“-Xss512k”と指定します。

またJDK/JRE内で実行されるJavaメソッドを自動的にコンパイルする専用スレッド(コンパイラスレッド)のスタックサイズは、“-XX:CompilerThreadStackSize”オプションで指定することができます。

通常、コンパイラスレッドのスタックサイズを指定する必要はありません。

“-XX:CompilerThreadStackSize”オプションは、キロバイト(Kバイト)単位でコンパイラスレッドのスタックサイズを指定します。例えば、スタックサイズを1024KBに設定する場合、”-XX:CompilerThreadStackSize=1024”と指定します。

Java APIで生成したスレッドおよびコンパイラスレッドのデフォルトのスタックサイズを、“表9.7 Java APIで生成したスレッドおよびコンパイラスレッドのデフォルトのスタックサイズ”に示します。

なお、スタック領域の実際の管理はOSが行います。そのためスタック領域に関する管理方法/動作仕様については、JDK/JREを実行する各OSの仕様に依存します。

表9.7 Java APIで生成したスレッドおよびコンパイラスレッドのデフォルトのスタックサイズ

OS

JDK/JREの実行モード

Java APIで生成したスレッド(注1)

コンパイラスレッド (Client VM)(注1)

コンパイラスレッド (FJVM)

Windows

32ビットモード

320KB

320KB

2048KB

Linux for x86

Linux for Intel64

32ビットモード

320KB

512KB

2048KB

Windows Server(R) x64 Editions
Linux for Intel64

64ビットモード

1024KB

(注2)

4096KB

Solaris

64ビットモード

1024KB

(注2)

4096KB

注1)

Windows版JDK/JREにおけるスタックサイズは、java.exeなどWindows版JDK/JREが提供するJDKツールを用いた場合の値です。JNIを用いて独自にJava VMを起動しているWindowsアプリケーションの場合は、Java VMを起動したプログラムのメインスレッドに対するスタックサイズと同じ値になります。

注2)

実行モードが64ビットモードのJDK/JREでは、Java HotSpot Client VMは搭載していません。

チューニングの影響範囲

スタックのサイズを変更した場合の影響範囲を、次に示します。