When is it necessary to close curl connection and release resources consumed by it?
Why do I ask this question, well quite simply because I was told, that PHP garbag
Results for 100 times curl_exec
(fetching url with cache avoiding):
for ($i = 0; $i < 100; ++$i) {
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://www.google.com/?rand=" . rand());
curl_exec($c);
curl_close($c);
}
8.5 seconds
$c = curl_init();
for ($i = 0; $i < 100; ++$i) {
curl_setopt($c, CURLOPT_URL, "http://www.google.com/?rand=" . rand());
curl_exec($c);
}
curl_close($c);
5.3 seconds
Decision: get used to always use optimal code in your tasks. (source)
as far as i understand it. The GC only cleans up resources that are no longer used/referenced. as whenever the curl variable fall out of scope, it'll be cleaned up. But that might only happen after the script has finished, or whenever the session is destroyed (depending on scope).
But to be on the safe side, just follow common sense.. close it when its no longer needed.
Depends. In my case since I was initializing curl instance in my custom CurlClient
constructor
$this->ch = curl_init();
And then using same $curlClient
object for multiple api calls, closing the instance
curl_close($this->ch);
would affect other API calls. Methods using the same object will not work, so I'm not closing it.