Php 如何加快CURL任务的速度?
我正在使用CURL从用户帐户获取一些数据。 它首先登录,然后重定向到数据所在的另一个URL 我的统计数据显示,平均需要14秒才能获取一些分布在5页上的数据。 我想加快速度,我的问题是: 是否有可能看到每一步需要多少? 你知道如何加快/增强卷曲度吗Php 如何加快CURL任务的速度?,php,curl,Php,Curl,我正在使用CURL从用户帐户获取一些数据。 它首先登录,然后重定向到数据所在的另一个URL 我的统计数据显示,平均需要14秒才能获取一些分布在5页上的数据。 我想加快速度,我的问题是: 是否有可能看到每一步需要多少? 你知道如何加快/增强卷曲度吗 感谢为了让任务“感觉”更快,请不要将其作为web请求的一部分运行,而是将其作为定期任务(cron作业)在后台运行 将响应缓存在磁盘或数据库中。从服务器检索页面的过程再快不过了 您可以将页面缩小,以便下载速度更快。您可以增强服务器上的处理能力,或者增强服
感谢为了让任务“感觉”更快,请不要将其作为web请求的一部分运行,而是将其作为定期任务(cron作业)在后台运行
将响应缓存在磁盘或数据库中。从服务器检索页面的过程再快不过了 您可以将页面缩小,以便下载速度更快。您可以增强服务器上的处理能力,或者增强服务器与页面所在服务器之间的连接 如果您使用的是服务,数据的格式是什么?如果是XML,可能太冗长,这会导致大量额外的KB,例如。将任务拆分为3个文件
<?php
$pagelist = get_page_list();//this will retrieve page list using CURL and save each page to some, let's say pagelist.txt and return this absolute path.
exec("/path/to/php /your/3rdscript.sh < $pagelist");
?>
<?php
$pageurl = $argv[2];
//do your curl process to fetch page $pageurl here
请注意,在第三个脚本(shell脚本)中,我使用了&(符号)。这将告诉shell将该特定进程放入后台进程
在第二个脚本中,您可以使用以下内容:
<?php
$pagelist = get_page_list();//this will retrieve page list using CURL and save each page to some, let's say pagelist.txt and return this absolute path.
exec("/path/to/php /your/3rdscript.sh < $pagelist");
?>
<?php
$pageurl = $argv[2];
//do your curl process to fetch page $pageurl here
您可以使用Pete Warden的parallelCurl。来源可在这里找到。该模块允许您在PHP中并行运行多个CURL url获取
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
把它当作CRON作业来运行。将文件缓存在磁盘上是什么意思?它是HTML格式的。也许我可以去掉这些图片,直接下载文本?有可能使用卷曲吗?卷曲不下载图片。好的,那么有什么卷曲调整我可以试试吗?有可能找到瓶颈步骤吗?@embedded cURL下载单个URL的内容,就是这样。它建立连接,下载内容并关闭连接;需要完成的最低技术要求。它将花费与通过网络移动数据所需的时间相同的时间。cURL本身的开销可以忽略不计。现在我正在解析从cURL检索到的每个数据。你认为通过使用你的建议,我可以通过显著的因素来提高绩效吗?谢谢,我会看看它是否符合我的需要。你在用这个吗?