266

ここでは、-Xssは「スレッドスタックサイズの設定」に使用されると書かれていますが、正確にはどういう意味ですか?誰かが私がこれを理解するのを手伝ってもらえますか?

4

4 に答える 4

297

Java アプリケーションの各スレッドには、独自のスタックがあります。スタックは、戻りアドレス、関数/メソッド呼び出し引数などを保持するために使用されます。したがって、スレッドが再帰アルゴリズムを介して大きな構造を処理する傾向がある場合、それらすべての戻りアドレスなどに対して大きなスタックが必要になる場合があります。Sun JVM では、そのパラメータを介してそのサイズを設定できます。

于 2011-02-11T10:25:35.570 に答える
188

実際、JVM のスタック サイズを設定します。

次の 2 つの状況のいずれかでタッチする必要があります。

  • StackOverflowError (スタック サイズが制限を超えています)、値を増やします
  • OutOfMemoryError: 新しいネイティブ スレッドを作成できません(スレッドが多すぎる、各スレッドのスタックが大きい)。スレッドを減らします。

後者は通常、Xss の設定が大きすぎる場合に発生します。その場合は、バランスを取る必要があります (テスト!)。

于 2012-09-28T16:35:49.633 に答える
7

各スレッドには、ローカル変数と内部値に使用されるスタックがあります。スタック サイズによって、呼び出しの深さが制限されます。通常、これを変更する必要はありません。

于 2011-02-11T10:24:55.237 に答える
4

私が間違っていなければ、これは、StackOverflowError を発行する前に、JVM が受け入れる連続した呼び出しの数を伝えるものです。一般的に変更したいものではありません。

于 2011-02-11T10:27:06.083 に答える