9

j2ee アプリケーションがあり、それを visualVM で監視しています。

次のようなメソッドがあるとしましょう。

public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}

スレッド タップから、私のスレッドの一部が上記の方法でスタックしていることがわかります。そこで、s と sb の内容を把握するためにヒープ ダンプ ファイルを生成しました。

しかし、どうすればそれを行うことができますか? Eclipse メモリ アナライザーを使用しています。

4

1 に答える 1

14

ローカル変数が現在ライブである場合、それはその変数の唯一の参照がそれ自身のスレッドであることを意味するため、スレッドからローカル変数を取得できます。

そのため、まず現在のスレッドを一覧表示する必要があります。これは次の方法で実行できます。

  1. アクション バーからオブジェクト オプション ボタンをクリックします[]
  2. Java Basics -> Threads Overview and Stacks を選択します。

次に、特定のスレッドのオブジェクトを一覧表示するには:

  • 右クリック -> List Object -> OutGoing 参照

次に、タグでローカル変数を検索します<Java Local>

于 2014-03-18T21:34:31.763 に答える