En regardant le code source, nous trouvons ces points de synchronisation:
apr_time_t start, /* Start of connection */
connect, /* Connected, start writing */
endwrite, /* Request written */
beginread, /* First byte of input */
done; /* Connection closed */
Et quand la demande est faite des timings sont stockées sous forme de:
s->starttime = c->start;
s->ctime = ap_max(0, c->connect - c->start);
s->time = ap_max(0, c->done - c->start);
s->waittime = ap_max(0, c->beginread - c->endwrite);
Et le 'temps de traitement' est calculée plus tard comme
s->time - s->ctime;
donc, si nous traduisons à un calendrier:
t1: Start of connection
t2: Connected, start writing
t3: Request written
t4: First byte of input
t5: Connection closed
Ensuite, les définitions seraient:
Connect: t1-t2 Most typically the network latency
Processing: t2-t5 Time to receive full response after connection was opened
Waiting: t3-t4 Time-to-first-byte after the request was sent
Total time: t1-t5
Je pense que le temps de traitement comprend le temps d'attente, sinon le temps total serait connecter + attente + traitement. – phsiao