php - cURL 循环内存增长

标签 php linux curl

我在使用 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/

相关文章:

php - 如何将 1300 条 CSV 记录输入到 Web 表单中?

php - 使用 PHP 类结构生成 JSON 文档

javascript - 阻止来 self 的网站的 cURL 请求

php - 自定义 Sonata 管理仪表板 - Sonata 和 Symfony 2

php - 获取相关项目并将其输出为链接

linux - 如何根据powershell中的变量在gcc6和gcc8之间切换

linux - 汇编代码程序发生段错误

linux - Lazarus 从 32 位交叉编译到 64 位

facebook-graph-api - 使用 graph api 隐藏帖子

php - 以编程方式更改 to 退出节点(获取新 IP)