0

JMHについて読み、提供されたサンプルを試しました。

私がやろうとしているのは、次のシナリオの統計を測定することです。

[1] クライアントの注文 -> [2] サーバー -> [3] 注文の処理を開始 -> [4] 注文を正常に処理し、送信する準備ができた -> [5] クライアントが応答を受信

[1] から [5] のシナリオを無事に行うことができました。そこで、benchmark.jar を使用して @Benchmark アノテーション付きメソッドからクライアントを呼び出しています。

現在、サーバー側の処理を表す [2] から [4] までの統計の測定に行き詰まっています。サーバー側のメソッドに注釈を付けてこれを行う必要がありますか? もしそうなら、ベンチマーク統計を取得する方法でこれらのメソッドを呼び出すにはどうすればよいですか?

ドキュメンテーションにはThe recommended way to run a JMH benchmark is to use Maven to setup a standalone project that depends on the jar files of your application.、これは、私が試みているシナリオが JMH を使用して不可能であることを意味しますか?

更新: rmi 呼び出しを介して @Benchmark アノテーション付きメソッドを呼び出す方法はありますか?

4

2 に答える 2

2

@BenchmarkJavadoc は次のように述べています。

 * <p>{@link Benchmark} demarcates the benchmark payload, and JMH treats it specifically
 * as the wrapper which contains the benchmark code. In order to run the benchmark reliably,
 * JMH enforces a few stringent properties for these wrapper methods, including, but not
 * limited to:</p>

@BenchmarkJMH がベンチマーク本体として扱うべきコード部分を区別する注釈です。プログラムの他の場所で特定のメソッドを測定する魔法の注釈ではありません。また、自分でメソッドを呼び出すことは想定されていません@Benchmark

必要なのはベンチマークではなく、リクエストが通過するすべての段階を計測および説明できるトレース/監視/プロファイリング ソリューションです。JMH はそのようなソリューションではありません。他の場所を探す必要があります。

于 2015-03-09T13:13:10.483 に答える
1

ユースケースに応じて、グラファイトなどの監視ツールを使用できます。

于 2015-09-01T05:04:16.500 に答える