什么时候需要关闭curl连接并释放它消耗的资源?
为什么我会问这个问题,因为我被告知,PHP垃圾收集器会完成所有这些,有时不需要关闭数据库连接或调用__destruct方法来释放资源.
从那时起,我真的开始思考我需要在哪里调用呢?目前我对这个问题很感兴趣,因为我为curl编写了一个小型库,我想了解何时需要用户curl_close()函数.
谢谢大家的讨论和解释.
结果100次curl_exec (获取缓存避免的URL):
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);
}
Run Code Online (Sandbox Code Playgroud)
8.5秒
$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);
Run Code Online (Sandbox Code Playgroud)
5.3秒
决策:习惯于在任务中始终使用最佳代码.(来源)
据我所知.GC仅清除不再使用/引用的资源.当curl变量超出范围时,它将被清理.但这可能只发生在脚本完成后,或者会话被销毁时(取决于范围).
但为了安全起见,请遵循常识..当它不再需要时关闭它.