考えられるのは、特定のJavaアプリケーションの最適なスタックサイズを決定するのに役立つはずです。実行中のある程度の時間が経過した後、Javaのスレッドが実際に使用するスタックサイズを取得できますか?
この情報を使用して実行できることの1つは、スレッドが終了するときに変更できるスタックサイズの範囲テーブルを作成し、定期的におよびアプリケーション終了時にダンプできることです。
EDIT:これは、プロファイラへのアクセスを取得できない実際の作業負荷を持つ顧客のマシンで実行されるというコンテキストです。
EDIT2:スレッドごとに(IIRC)256Kbで、私はしばらくの間、それが現実にどれだけ近いのか疑問に思っています(この質問があまり関係ないかもしれないのだろうか需要に応じてのスタック領域が割り当てられるためです)。我々は、メッセージの受け渡しと高度にスレッド化され、ARMのハンドヘルドからオクトーコアのLinux、中規模およびメインフレームまでのすべてのアプリケーションサーバーを提供しています。多数のメッセージハンドラーを持つシステム上のヒープのためのスタックスペース。
があり注目されているいくつかの同様の質問がありますが、彼らはネイティブ/ OS固有です:
に関するより多くの情報を得ることだけ...自分で –
@Tomを64ビットプラットフォームを取得:確かに...と私はちょうどに沿って私の顧客ごとに1つを買いますよ8ギガのRAMを搭載しているので、私が設計して書くソフトウェアについて考える必要はありません。 –