note 129047 added to function.curl-init

From: Date: Wed, 15 Nov 2023 13:52:56 +0000
Subject: note 129047 added to function.curl-init
Groups: php.notes 
Request: Send a blank email to php-notes+get-221002@lists.php.net to get a copy of this message
NextgenThemes' note is applicable for very very limited situations. For completeness's sake, let's consider the following code snippet: <?php /* Your localhost has a default Apache which simply returns "It works!" */ $repeatCount = 1000; // begin section // this section is slow // call localhost, create new handle each time $time = microtime(true); foreach (range(1, $repeatCount) as $ignored) { $ch = curl_init("http://localhost"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); // do something with the response unset($response); curl_close($ch); } unset($ch); $elapsed = microtime(true) - $time; echo "Recreate curl handle, time taken: " . $elapsed . "\n"; // end section // begin section // this section is much faster // call localhost, but reuse the handle $time = microtime(true); $ch = curl_init("http://localhost"); foreach (range(1, $repeatCount) as $ignored) { curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); // do something with the response unset($response); } curl_close($ch); $elapsed = microtime(true) - $time; echo "Reuse curl handle, time taken: " . $elapsed . "\n"; // end section /* Example output: Recreate curl handle, time taken: 11.289301872253 Reuse curl handle, time taken: 0.53790807723999 */ ?> The above code supports the claim by NextgenThemes, however the "send curl requests in sequence" method in general is unnecessarily slow because: - network transfer time (e.g. 100ms) - remote processing time (e.g. 50ms) - usually, no need to send requests in specific sequence So, in practice, when you need to send multiple curl requests at the same time, just use the curl_multi_init method. Don't consider the "send curl requests in sequence" method unless you have very very specific/special needs. ---- Server IP: 45.112.84.4 Probable Submitter: 45.91.157.134 (proxied: 14.199.243.9) ---- Manual Page -- https://php.net/manual/en/function.curl-init.php Edit -- https://main.php.net/note/edit/129047 Del: integrated -- https://main.php.net/note/delete/129047/integrated Del: useless -- https://main.php.net/note/delete/129047/useless Del: bad code -- https://main.php.net/note/delete/129047/bad+code Del: spam -- https://main.php.net/note/delete/129047/spam Del: non-english -- https://main.php.net/note/delete/129047/non-english Del: in docs -- https://main.php.net/note/delete/129047/in+docs Del: other reasons-- https://main.php.net/note/delete/129047 Reject -- https://main.php.net/note/reject/129047 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#221002) next »