3

私はEclipseを使用してJavaコードを記述しています。いくつかのコードをデバッグしている場合は、ブレークポイントを設定して、コードが各関数を通過するときにそれに従うか、バックトラックすることができます。また、呼び出し階層または参照を調べてアイデアを得ることができます。しかし、それだけでは十分ではありません。

「ポイントA」(インターフェースのボタンを押す)から「ポイントB」(結果を取得する)までのプロセスに沿って、各スレッドが何をしているかを時間ベースで視覚化したいと思います。 。どのクラス/メソッドがどの順序で呼び出されたかを確認したい。あるメソッドからどのような出力が出て、新しいプロセスを起動する別のメソッドに入るのかを視覚化する良い方法が必要です...など。

このタイプの視覚化に使用できるのはプロファイラーだけですか?基本的には、アクション図やフロー図を作成したいです。このようなものを生成できるプラグインやアプリはありますか?

編集:これは私が考えていることの例です...少なくとも視覚的に:essmodel.sourceforge.net/index.htmlコードがリードしている場所のフローがあります。しかし、これは、どのクラスが他のクラスにつながるか、およびどの入力/出力オプションが使用可能かを示す静的なマップにすぎないと思います。特定のケースに基づいてフローをマッピングしたいと思います。

4

2 に答える 2

3

JProfilerは、「コール トレーサ」と呼ばれるビューを提供します。

ここに画像の説明を入力

大量のデータを記録しないように、フィルターを慎重に制限することが重要です。

免責事項: 私の会社は JProfiler を開発しています。

于 2012-03-27T09:05:00.067 に答える
0

プロファイラーを使用することが最善の選択肢になると思います。VisualVM に精通していますか? これは JDK (JDK の bin ディレクトリ内で「jvisualvm.exe」を探します) に付属しており、適切に構成されていれば、ローカル仮想マシンとリモート マシンを自動的にプロファイリングできます。また、実行中のスレッドと、それらが時間を費やしているコードの概要が非常に滑らかに表示されるので、そこから必要なことを簡単に実行できると思います。そして何よりも、それは無料です:)

前述したように、ローカル プロファイリングは簡単です。JVisualVM.exe をスタンドアロンで実行するだけで、ローカル マシンで実行されているすべての Java プロセスが自動的に検出されます (VisualVM が事前に提供するメニューから選択できます)。リモートでプロファイリングする場合は、実行しているものに関係なく、次の VM 引数を設定します。

-Dcom.sun.management.jmxremote.port=[0-65535]
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

次に、VisualVM 内で、リモート JVM が実行されているマシンのホスト名と、上記の最初の VM 引数で構成したポートを使用します。

于 2012-03-27T00:00:00.210 に答える