PHP比cURL快?

PHP比cURL快?,php,performance,curl,Php,Performance,Curl,获取http状态代码的最快方法是什么。 我有一个大约10k URL内的列表要检查。最好是每15分钟检查一次。 所以我有一个php脚本,它使用简单的curl函数并循环遍历所有函数。但这需要太多的时间。 有什么建议可以改进吗?对多个URL进行并行检查怎么样?php可以管理多少?我对表演这件事很陌生 这就是我所拥有的: public function getHttpStatus(array $list) { $list = array(…); // Array contains 10k+ ur

获取http状态代码的最快方法是什么。 我有一个大约10k URL内的列表要检查。最好是每15分钟检查一次。 所以我有一个php脚本,它使用简单的curl函数并循环遍历所有函数。但这需要太多的时间。 有什么建议可以改进吗?对多个URL进行并行检查怎么样?php可以管理多少?我对表演这件事很陌生

这就是我所拥有的:

public function getHttpStatus(array $list) {
    $list = array(…); // Array contains 10k+ urls from database.
    for($i = 0; $i < count($list); $i++) {
            $ch = $list[$i];
        curl_setopt($ch, CURLOPT_NOBODY, 1); 
        curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE); 
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($ch, CURLOPT_MAXREDIRS, 5);

        $c = curl_exec($ch); 
        $info = curl_getinfo($ch);
        echo $info['http_code'] . '<br />';
    }
}
公共函数getHttpStatus(数组$list){
$list=array(…);//数组包含来自数据库的10k+个URL。
对于($i=0;$i;
}
}

提前谢谢

> P>您可以考虑使用<代码> CURLIOMIOXEXECUTE()/COMP>>,它允许您并行处理多个卷曲句柄。如果您愿意,可以看看我编写的一个非常轻量级的REST客户机,它支持
curl\u multi\u exec()
。链接如下:

现在,我没有设置这个库来处理HEAD请求,如果您只查找响应代码,那么它实际上比GET请求更有效。但这应该相对容易修改以支持这样的用例

至少这个REST客户端库可以为您提供有关如何使用
curl\u multi\u exec()的良好示例代码。


显然,您需要根据您可用的硬件和您所请求的服务所能处理的并发请求的数量来进行处理。

或者可能是在命令行上执行该命令的最佳方式吗?也许考虑为此使用多线程()@是的,可以并行执行的句柄数量取决于您的系统硬件(内存、CPU)和它可以处理的内容,以及来自被调用服务器的响应(响应所需的时间、发送的数据量等)。您确实需要在您的环境中进行测试,以查看哪些是有效的。我从来没有遇到过一次使用超过20个手柄的情况。如果您必须在几秒钟内执行数千个请求,那么您可能应该考虑另一种解决方案。