下载多个网址的最快方法

布拉德

我有一个门户网站,需要下载许多单独的json文件并以某种形式的视图显示其内容。我的意思是最少要32个单独的文件。

我尝试了cUrl的蛮力迭代,耗时约12.5秒。

我尝试了curl_multi_exec,如此处http://www.php.net/manual/en/function.curl-multi-init.php所示,其功能如下,耗时约9秒钟。好一点,但仍然非常慢。

function multiple_threads_request($nodes){
    $mh = curl_multi_init();
    $curl_array = array();
    foreach($nodes as $i => $url)
    {
        $curl_array[$i] = curl_init($url);
        curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true);
        curl_multi_add_handle($mh, $curl_array[$i]);
    }
    $running = NULL;
    do {
        curl_multi_exec($mh,$running);
    } while($running > 0);

    $res = array();
    foreach($nodes as $i => $url)
    {
        $res[$url] = curl_multi_getcontent($curl_array[$i]);
    }

    foreach($nodes as $i => $url){
        curl_multi_remove_handle($mh, $curl_array[$i]);
    }
    curl_multi_close($mh);
    return $res;
}

我意识到这是一项天生的昂贵操作,但是有人知道其他任何方法可能会更快吗?

编辑:最终,我的系统限制了curl_multi_exec并将代码移至生产机器中看到了显着的改进

猴子宙斯

您绝对应该考虑对您的cURL进行基准测试,以查看哪个速度下降,但是对于评论来说这太长了,所以请告诉我它是否有帮助:

// revert to "cURLing with brute force iteration" as you described it :)

$curl_timer = array();

foreach($curlsite as $row)
{
    $start = microtime(true);

    /**
     * curl code
     */

    $curl_timer[] = (microtime(true)-$start);
}

echo '<pre>'.print_r($curl_timer, true).'</pre>';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用R从网址下载多个文件

来自分类Dev

使用R从网址下载多个Excel文件

来自分类Dev

下载网站数据C#的最快方法

来自分类Dev

从 GCS 存储桶下载数据的最快方法

来自分类Dev

检查网址/文件是否存在并下载的方法

来自分类Dev

为网址的西里尔字母编码的最快方法

来自分类Dev

检查数千个网址的最快方法是什么?

来自分类Dev

在C#中使网址绝对的最快捷方法

来自分类Dev

搜索多个字段的最快方法mysql

来自分类Dev

比较多个值的最快方法?

来自分类Dev

使用R从一个网址下载多个文件

来自分类Dev

使用python下载数千个文件的最快方法?

来自分类Dev

用Python下载一组文件的最快方法

来自分类Dev

从 AWS EC2 EBS 下载大文件的最快方法

来自分类Dev

在Python中模拟多个给定多个概率的最快方法?

来自分类Dev

从Redis读取多个哈希的最快方法是什么?

来自分类Dev

在R中执行多个逻辑比较的最快方法是什么?

来自分类Dev

查找文件是否在多个压缩的tarball中的最快方法?

来自分类Dev

从python中的文件中grep多个值的最快方法

来自分类Dev

在单个图像Rust上执行多个image :: imageops的最快方法

来自分类Dev

R-选择满足多个条件的矩阵行的最快方法

来自分类Dev

从Redis读取多个哈希的最快方法是什么?

来自分类Dev

collectionfs生成下载网址

来自分类Dev

从网址下载APK并执行

来自分类Dev

防止共享下载网址

来自分类Dev

从cloudinary网址下载图像

来自分类Dev

collectionfs生成下载网址

来自分类Dev

从网址下载文件?

来自分类Dev

如何将多张图片上传到 Firebase 存储并返回多个下载网址