synchronous を使用すると、メソッドの前後にHttpClient
置くだけで、1 つのリクエストの時間を取得するのは非常に簡単です。System.currentTimeMillis()
execute()
しかし、 に関して言えばHttpAsyncClient
、execute()
は非同期であり、タスクをキューに入れるだけです。そのため、接続の開始時刻を取得する方法がわかりません。
接続の終了時間は簡単です。クラス インスタンスSystem.currentTimeMillis()
のメソッドを呼び出すだけです。OnComplete()
FutureCallback<HttpResponse>
同期HttpClient
と非同期の両方に 、 、のHttpAsyncClient
3 つのフェーズがあります。すべてのリクエストは、実際に実行される前にキューに入れられます。を呼び出すと、リクエストが内部キューに送信された開始時刻を記録するだけなので、最終的に得られるのは + +です。バッチ リクエストをテストするためにベンチマークを実行すると、問題ありませんが、単一のリクエストをそれぞれテストするには、減算する必要があります。ConnectRequestTime
ConnectTime
SocketTime
long start=System.currentTimeMillis()
HttpAsyncRequestProducer.html#generateRequest()
ConnectRequestTime
ConnectTime
SocketTime
ConnectRequestTime
だから私の本当の質問は、の時間を取得する方法ConnectRequestTime
です?