我在使用 cURL 的循环中遇到了这个问题,其中内存呈指数增长。在这个示例脚本中,它开始使用大约 14MB 的内存并以 28MB 结束,使用我的原始脚本并重复到 1.000.000,内存增长到 800MB,这很糟糕。
PHP 5.4.5
curl 7.21.0
for ($n = 1; $n <= 1000; $n++){
$apiCall = 'https://api.instagram.com/v1/users/' . $n . '?access_token=5600913.47c8437.358fc525ccb94a5cb33c7d1e246ef772';
$options = Array(CURLOPT_URL => $apiCall,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FRESH_CONNECT => true
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);
unset($ch);
}
最佳答案
我想我找到了解决内存泄漏的方法。我在 PHP 脚本中使用 curl lib 时遇到了同样的问题。反复调用 curl_exec() 函数后,内存耗尽。
根据 PHP bug report此内存泄漏可能会在关闭后取消设置 Curl 处理程序,就像下一个代码一样:
...
curl_close($ch);
unset($ch);
关于php - cURL 循环内存增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11968366/