Home > Net >  How to calculate total response time of an HTTP request using AsyncHttpClient library
How to calculate total response time of an HTTP request using AsyncHttpClient library

Time:06-13

I am looking into using AsyncHttpClient (AHC) to invoke multiple HTTP requests in parallel and calculate total response time as well as TCP connection time, DNS resolution time, time to first byte etc. of each of these async requests.

AsyncHttpClient is the only Java client I came across which emits events for TCP connection time, DNS resolution time etc.

My question is: What is the correct way to measure the start time for the HTTP request so that I can calculate different performance metrics based on that.

Is "onRequestSend" correct event to consider for start time. I am looking for an event which indicates the start of the HTTP lifecycle phase i.e creating a socket on client side to open a connection.

Documentation: https://www.javadoc.io/doc/org.asynchttpclient/async-http-client/latest/org/asynchttpclient/AsyncHandler.html

CodePudding user response:

you can use Kotlin standard library:

    val mark = TimeSource.Monotonic.markNow() // Returned `TimeMark` is inline class
    val elapsedDuration = mark.elapsedNow()

look off-documentation

CodePudding user response:

I would say it is like

long t0=System.currentTimeMilis();

doYourHttpCallAndProvideCallback(response->{
    long total=System.currentTimeMIlis()-t0;
    souf("It took %dms to do the request\n",total);
})
  • Related