4

プログラムの実行中にJavaメソッドの値を確認する方法を理解する必要があります。実行中のコードを変更できず、コードの実行をブロックしたくありません(したがって、Eclipseでデバッグモードを使用することはできません)。プロファイラーなどに、特定のメソッドが呼び出されるたびに受け取るすべてのパラメーターを出力するように指示したいだけです。

これを達成する方法はありますか?

ありがとう:)

4

3 に答える 3

4

この場合、AOPを使用する必要があります。メソッドをカスタムコードでラップし、そのすべての呼び出しをログに記録します。あるプロジェクトでは、プロファイリングの目的でメソッドの実行時間をログに記録するためにAspectJを使用しました。

于 2013-03-20T17:08:41.337 に答える
1

デコレータのようなものを使用できるかもしれません。次のように、分析するメソッドを持つクラスがあるとします。

    public class Example {

      public void doSomething(parameters) {
         doSomething;
      }
    }

このクラスを拡張して、メソッドをプロファイリングするための動作を追加できます。だからあなたはこれを行うことができます:

    public class FilePrinterExample extends Example{

      @Override
      public void doSomething(parameters) {
          for each parameters do
              //print on file or what you want
          super.doSomething(parameters);
      }
    }

私はいくつかの擬似コードを使用します、そして私が明確であったことを望みます。

于 2013-03-20T16:46:02.227 に答える
1

JProfilerはそれを行うことができます。目的のメソッドのメソッドトリガーを作成し、それに「メソッド呼び出しアクションの印刷」を追加します。

ここに画像の説明を入力してください

より高い柔軟性が必要な場合、このスクリーンキャストは、実行中のアプリケーションから内部状態を抽出するために「インターセプタースクリプトの実行」を使用する方法を示しています。

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

于 2013-03-20T20:56:05.137 に答える