CURL mit PHP - Sehr langsam
Alle,
Habe ich auf Anfrage eine URL gibt eine JSON-Anfrage. Ich bin mit PHP und CURL, dies zu tun. Derzeit dauert es etwa 3-4 Sekunden für die request-und response.
Folgenden ist die curl-code
$ch = curl_init();
$devnull = fopen('/tmp/curlcookie.txt', 'w');
curl_setopt($ch, CURLOPT_STDERR, $devnull);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $desturl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
$ret = curl_exec($ch);
curl_close($ch);
if ($devnull)
{
fclose($devnull);
}
Folgenden ist die CURL_GETINFO array
Array
(
[url] => https://xx.xx.xxx.xx/portalsite/tester
[content_type] => application/json
[http_code] => 200
[header_size] => 198
[request_size] => 835
[filetime] => -1
[ssl_verify_result] => 20
[redirect_count] => 0
[total_time] => 2.054561
[namelookup_time] => 6.5E-5
[connect_time] => 0.016048
[pretransfer_time] => 0.123947
[size_upload] => 699
[size_download] => 46735
[speed_download] => 22746
[speed_upload] => 340
[download_content_length] => 0
[upload_content_length] => 0
[starttransfer_time] => 1.743973
[redirect_time] => 0
)
Wie kann ich beschleunigen, die ROLLNEIGUNG der Bearbeitung Zeit?
Dank
- Wie lange dauert es, wenn Sie besuchen
$desturl
mit Ihrem browser? Wenn das auch dauert 3-4 Sekunden, ich glaube nicht, dass LOCKE die Schuld. - Es ist eigentlich ziemlich schnell, wenn ich die URL explizit. Weniger als 2 Sekunden
- Ich habe auch erfahren, dass die Einstellung CURLOPT_TIMEOUT Kräfte cURL zu verwenden, dass sagt mal, ist es besser, diese ständige und lassen Sie cURL cURL
Du musst angemeldet sein, um einen Kommentar abzugeben.
sieht es aus wie die meisten der Zeit ist, wartet der server darauf reagieren (starttransfer_time - pretransfer_time = 1.620026)... vielleicht ist der server tut von einigen Datenbank oder anderen Vorgang, der Zeit braucht?
Laut diese Antwort (ähnliches problem) cURL kann langsam sein, wenn Sie auf Mac OS X und Ihnen den Zugang zu Ihrem Projekt mit
xxxx.local
(mit127.0.0.1 myproject.local
in Ihrem/etc/hosts/
Als @lepix sagte:
Hoffe, es wird helfen, Dank lepix.
Hatte ich einige problem, wie das mit wget war es schnell (1 Sekunde max), mit cURL es dauerte etwa 5 Sekunden, um die Seite, wenn tcpdump-ing habe ich festgestellt, dass cURL tun versuchen, einen revers-DNS-lookup, und wenn der server nicht über die revers-DNS registriert hat, wird es langsam nach unten, ich habe eine reverse-DNS auf meinem lokalen DNS-server, also jede Anfrage an, dass die Website mit cURL geht jetzt sehr schnell. Ich habe nicht einen Weg finden, deaktivieren Sie die revers-DNS-lookup aus den cURL-Einstellungen.
Meine sugestion ist zum Scannen Ihres trafic zu sehen, wo Sie so lange warten.