0

作成したさまざまなサービス間の応答時間を比較したいと思います。キャリパーについて聞いたので、次のようないくつかの機能を使用して、非常に簡単な方法で電話をかけ、測定することにしました。

public void timeCallingService(int reps) {
    String url = "http://localhost:8080/myservice/rest/"+size;
    for (int i = 0; i < reps; i++) {
        new Client(url);
    }
}

ここで、sizeは、CaliperとClientの指定されたパラメーターであり、サービスを呼び出してステータスの回答に問題がないかどうかを確認するために作成したクラスです。

応答に時間がかかりすぎる一部のサービスを除いて、すべてが正常に機能しているため、Caliperでエラーが発生します。

Error: Runtime 1.06027641E11ns/rep out of range 0.1-1.0E10

warmupMillisやrunMillisなどのパラメーターを試してみましたが、機能しないようです。

それで :

  1. 私の問題を解決する簡単な方法はありますか?
  2. ない場合、複雑なものは必要ないという事実を踏まえて、比較を行うためにどのベンチマークフレームワークを使用できますか?
4

2 に答える 2

3

申し訳ありません。Caliper 0.5 にはこのようないくつかの癖がありますが、私たちが取り組んでいる Caliper 1.0 は、(a) このようなタイミングで期待されるものについて、あまり保持されません。(b) 多くの値を構成可能にします (タイミング間隔など)。 ; 1 秒より長くすることもできます)、(c) MicrobenchmarkInstrument のロジックが機能しない場合は、別の測定器を接続することもできます。

残念ながら、まだリリース日を約束することはできません。:(

于 2012-02-28T03:17:52.783 に答える
0

TimeMeasurer.class で使用されるキャリパー (ソース TimeMeasurer.java の 80 ~ 84 行を参照) の有効な可能時間の決定に関する制限。この制限は、lowerBound (0.1 ns) と upperBound (10 秒) です。これが、upperBound よりも長いメジャーや、lowerBound よりも高速なメジャーが RuntimeOutOfRangeException をスローする理由です。したがって、別の制限範囲でこのクラスをコンパイルしようとするよりも、本当にそれに固執している場合は、キャリパーの作成者にこれについて書いて、(たとえば、upperBound を設定する) よりもランタイム パラメーターを追加することを提案することをお勧めします。この測定ツールは、ナノ秒が分析にとって重要な場合に高速プロセスを測定するためのものです。そして、何かを測定して10秒以上かかる場合は、別の測定ツールを使用する必要があるかもしれません...とにかく解決策があります...

于 2013-02-15T07:56:25.443 に答える