0

使用同步HttpClient时,很容易得到一个请求的时间,只需放在方法System.currentTimeMillis()的前后即可execute()

但是说到HttpAsyncClientexecute()是异步的,它只会将任务放入队列中。所以我不知道如何获得连接的开始时间。

一个连接的结束时间很简单,在类实例System.currentTimeMillis()的方法中调用即可OnComplete()FutureCallback<HttpResponse>

同步HttpClient和异步HttpAsyncClient都具有三个阶段,ConnectRequestTimeConnectTimeSocketTime。所有请求将在实际执行之前排队。如果我们调用long start=System.currentTimeMillis()HttpAsyncRequestProducer.html#generateRequest()我们只记下请求发送到内部队列的开始时间,所以最后你得到的是 ConnectRequestTime++ ConnectTimeSocketTime当你做一个基准测试一个批处理请求时,很好,但是测试每个请求,我们需要减去ConnectRequestTime.

所以我真正的问题是如何获得时间ConnectRequestTime

4

1 回答 1

0

HttpAsyncRequestProducer.html#generateRequest()应该是正确的地方。

您可能还想看看这个示例,了解如何在进行微基准测试时从 Apache HttpAsyncClient 中获得最大性能。

于 2015-08-23T12:37:34.427 回答