PHP Async Curl POST在500毫秒内减慢了我的代码速度
我正在尝试扩大/加速我的应用程序 因此,我正在开发一个登录页,保存数据并在保存数据后重定向,为了保存数据,我在服务器上使用了另一个服务,从CURL获取post数据并将其发布到Bigquery 问题是CURL执行的时间大约是700毫秒,当我删除CURL代码时,我执行代码的时间是95-110毫秒 这是我的CURL代码示例-PHP Async Curl POST在500毫秒内减慢了我的代码速度,php,performance,curl,Php,Performance,Curl,我正在尝试扩大/加速我的应用程序 因此,我正在开发一个登录页,保存数据并在保存数据后重定向,为了保存数据,我在服务器上使用了另一个服务,从CURL获取post数据并将其发布到Bigquery 问题是CURL执行的时间大约是700毫秒,当我删除CURL代码时,我执行代码的时间是95-110毫秒 这是我的CURL代码示例- $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $request_url); curl_setopt(
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $array);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_exec($ch);
curl_close($ch);
我希望将curl时间从700ms降低到50-180ms mif这是通过改进curl代码或使用替代解决方案来实现的1尝试删除新的连接,这样每次都会创建一个新的TCP,如果您追求的是速度,您不希望这样 当您第一次执行CURL时,会建立TCP连接。发送数据时,连接保持活动状态,以便可以重用,默认时间为60秒 因此,它将帮助您在60秒内完成第一次呼叫后提高每次呼叫的速度
2由于您没有使用curl的结果,您可以将数据放入队列中,并与工作程序一起发送curl。因此我找到了一个解决方案,以毫秒为单位构建异步curl,而不是秒为单位 我换了新的
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
与
这样,我可以将卷发贴的最长时间限制在50毫秒你无法让卷发更快。获得一个更强大的服务器。检查带宽和网络延迟。嘿,弗拉德,你能详细说明第二点吗?fresh connect在50毫秒内优化了我的代码。我也在使用appengine环境。您认为除了curl还有其他选择吗?仅供参考,我正在发布数据,但我不需要处理结果,因为我的评论有帮助。由于您对curl的结果不做任何处理,因此您可以查看消息代理,如RabbitMQ或任何发布/订阅解决方案,这些解决方案将允许您发布包含$request_url和$postFields的消息,并使用不同的进程侦听队列并执行curl。这样,它将加快速度更快,因为您的主脚本将不再等待卷曲。我更喜欢这样做,而不是实现超时,这可能会导致您的curl没有被发送。
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 50);