使用同步HttpClient时,很容易得到一个请求的时间,只需放在方法System.currentTimeMillis()的前后即可execute()。
但是说到HttpAsyncClient,execute()是异步的,它只会将任务放入队列中。所以我不知道如何获得连接的开始时间。
一个连接的结束时间很简单,在类实例System.currentTimeMillis()的方法中调用即可OnComplete()FutureCallback<HttpResponse>
同步HttpClient和异步HttpAsyncClient都具有三个阶段,ConnectRequestTime,ConnectTime,SocketTime。所有请求将在实际执行之前排队。如果我们调用long start=System.currentTimeMillis(),HttpAsyncRequestProducer.html#generateRequest()我们只记下请求发送到内部队列的开始时间,所以最后你得到的是 ConnectRequestTime++ ConnectTime,SocketTime当你做一个基准测试一个批处理请求时,很好,但是测试每个请求,我们需要减去ConnectRequestTime.
所以我真正的问题是如何获得时间ConnectRequestTime?