2

これは別の質問と密接に関連しています:スレッドスタックの深さを測定するにはどうすればよいですか?

JProfiler はスレッドを監視し、スタックが最も深い場所を測定できますか? もしそうなら、どうすればそれを行うことができますか? アプリケーションで、危険なほど StackOverflowError のトリガーに近づいている箇所を見つけたいと考えています。

4

1 に答える 1

1

JProfiler はこれを機能として直接持っていません。ただし、次の操作を実行できます。

  • サンプリングあり、フィルターなしで CPU データを記録する

  • CPU セクションのコール ツリー ビューに移動します。

  • ファイル選択ダイアログの下部にある「ツリー全体」オプションを選択して、コール ツリーを XML 形式でエクスポートします。

  • エクスポートされた XML ファイルを分析し、最も深くネストされた要素を見つける小さなプログラムを作成する

オフライン プロファイリングと、CPU データを記録してスナップショットを保存するトリガーを使用して、これを自動化することもできます。「jpexport」コマンド ライン実行可能ファイルを使用すると、保存されたスナップショットからコール ツリーをエクスポートできます。

于 2011-12-04T13:04:59.363 に答える