Calcul Du Temps De Traitement Du Serveur Avec Curl
Je suis le délai de demande d'info avec curl à l'aide de la --write-out
option comme décrit dans cet article.
Ici est un exemple de la sortie d'un de mes demandes:
time_namelookup: 0.031
time_connect: 0.328
time_appconnect: 1.560
time_pretransfer: 1.560
time_redirect: 0.000
time_starttransfer: 1.903
----------
time_total: 2.075
Ma question est: Comment puis-je déterminer combien de temps le serveur a pris le traitement de la requête? La réponse est:
time_starttransfer - time-connect
Qui est, l'heure à partir de laquelle la connexion a été établie à quand le serveur depuis l'envoi de sa réponse? Cela semble correct, mais je veux être sûr.
De détails sur curl calendrier variables peuvent être trouvés ici: http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
- J'ai essayé de le comprendre ainsi. J'ai trouvé que les descriptions de l'époque sur curl.haxx.se/docs/manpage.html sont plus faciles à lire. Ma meilleure supposition à distance le temps de traitement est
time_starttransfer - time_pretransfer
. Ma compréhension est quetime_pretransfer - time_connect
comprend également le temps qu'il faut pour envoyer la requête.
Vous devez vous connecter pour publier un commentaire.
Oui, (time_starttransfer - temps-connect) est le temps de la connexion a été remarqué par le roulage jusqu'à ce que le premier octet est arrivé. Notez qu'il comprend également le transfert de temps donc pour un site distant, il sera plus simplement à cause de cela.
Je dirais que vous avez raison, (time_starttransfer - time_connect) est certainement un montant de serveur de temps pris pour traiter la demande.
Cependant - je me demandais aussi quelle est la différence entre time_connect et time_pretransfer? (intrigué par @Schwartzie et @Cheeso commentaires)
En regardant plusieurs curl des requêtes sur le web, j'ai constaté que parfois, ils sont égaux et parfois ils ne le sont pas.
Puis j'ai compris (du moins je le crois) qu'ils ne diffèrent que pour les requêtes HTTPS, cause serveur a besoin de temps pour déchiffrer couche ssl, ce qui n'est pas exactement le temps passé par l'application cible, mais le temps passé par le serveur hébergeant l'application/service.
Le temps de déchiffrer ssl (et de se connecter aussi, celui qui est donné dans time_connect) est time_appconnect, et seulement quand il est à 0 (comme pour les non-demandes https) - time_connect et time_pretransfer sont ÉGAUX, sinon pour les requêtes https ils diffèrent, et pour https time_pretransfer serait égale à time_appconnect (et de ne pas time_connect).
Vérifier les deux exemples suivants:
curl-kso /dev/null -w "time_connect=%{time_connect}, time_appconnect:%{time_appconnect}, time_pretransfer=%{time_pretransfer}\n" http://www.csh.rit.edu
curl-kso /dev/null -w "time_connect=%{time_connect}, time_appconnect:%{time_appconnect}, time_pretransfer=%{time_pretransfer}\n" https://www.csh.rit.edu
je dirais donc que time_pretransfer est plus précis pour être utilisé par rapport à time_connect, puisqu'il sera respect des connexions ssl trop, et peut-être quelques autres choses que je ne suis pas au courant.
Avec tous les précédents étant dit, je dirais que plus de réponse précise à la question:
serait probablement:
comme @Schwartzie déjà mentionné, je voulais juste comprendre pourquoi.