Ho CURLOPT_CONNECTTIMEOUT_MS = 200 e CURLOPT_TIMEOUT_MS = 70 ms impostato. Ma sto vedendo CURLINFO_TOTAL_TIME essere intorno a 220 ms.L'arricciatura non termina correttamente
Come per il doc libcurl, CURLOPT_TIMEOUT_MS include anche il timeout di connessione. Quindi, in pratica, il mio tempo totale di chiamata al ricciolo non dovrebbe richiedere più di 70 ms. Ma perché sta prendendo più ritorno indietro il controllo?
Qualcuno può spiegare questo comportamento.
Sto usando curl 7.19_02 libreria C++.
Ecco il mio codice
CURL * curl;
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl,CURLOPT_CONNECTTIMEOUT_MS,200);
curl_easy_setopt(curl,CURLOPT_TIMEOUT_MS,70);
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
double tt = 0.0;
double ns = 0.0;
double ct = 0.0;
double pt = 0.0;
double st = 0.0;
curl_easy_perform(curl);
int curlRC = curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &tt);
curlRC = curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME, &ns);
curlRC = curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME, &ct);
curlRC = curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME, &pt);
curlRC = curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME, &st);
cout << "Curl timing info: Total: " << tt << endl << " Lookup: "<< ns << endl << " Connect: " << ct << "\n" << "pre transfer: " << pt << endl << "start transfer: " << st <<endl;
Le informazioni tempistica ho ottenuto è la seguente. Si prega di controllare questo fuori
Curl informazioni tempistica: Totale: 0,216793
Lookup: 0,000999
Connect: 0,023199
pre trasferimento: 0,023213
transfer start: 0,216667
Così il punto è, cosa sta succedendo tra il trasferimento preliminare e il trasferimento iniziale?
Risoluzione DNS probabilmente – Brad
Quale versione di cURL stai usando? –
Qualcuno di voi può spiegare, quale potrebbe essere la ragione probabile. Sarebbe bello se potesse essere spiegato dividendo i tempi presi per un req HTTP. – naveen