12

アイデアは、特定の Java アプリケーションの最適なスタック サイズを決定するのに役立つことです。

この情報を使用して実行できることの 1 つは、スレッドが終了するときに変更でき、定期的に、およびアプリケーションの終了時にダンプできる、スタック サイズの範囲テーブルを作成することです。

編集:これは、プロファイラーにアクセスできない実際のワークロードを備えた顧客のマシンで実行するというコンテキストにあります。

EDIT2: スレッドあたり (IIRC) 256Kb での 1 つの回答に応えて、私はしばらくの間、それが必要なものの現実にどれほど近いのか疑問に思っていました (おそらくスタックスペースがオンデマンドで割り当てられます)。メッセージパッシングに基づいた高度にスレッド化されたアプリケーションサーバーがあり、ARM ハンドヘルドからオクトコア Linux、ミッドレンジ、メインフレームまで、あらゆるもので実行されます。多くのメッセージ ハンドラを持つシステムのヒープ用のスタック スペース。

興味深い同様の質問がいくつかありますが、それらはネイティブ/OS固有のものです。

4

4 に答える 4

2

スタックメモリを取得するのは困難です。

あなたができる最善のこと、そして非常に簡単なことは、を介したJVMのメモリ使用量MemoryMXBeanです。

于 2009-05-05T21:28:51.743 に答える
0

まったく新しいVisualVMでもそれができると思います。

于 2009-05-14T16:39:56.517 に答える
0

JConsole を使用してください。おそらくすでにお持ちです: http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html http://openjdk.java.net/tools/svc/jconsole /

于 2009-05-05T18:16:21.487 に答える