PHP 卷曲缓慢

2022-08-30 18:44:50

由于某种原因,我的卷曲呼叫非常慢。这是我使用的代码。

$postData = "test"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
$result = curl_exec($ch);

执行此代码平均需要 250 毫秒才能完成。但是,当我只是在浏览器中打开URL时,firebug说它只需要大约80毫秒。

我做错了什么吗?或者这是与PHP Curl相关的开销。

这是呼吁

curl_exec

这一直在占据。

更新:

因此,在我发布此内容后,我立即发现,如果我设置了curl选项

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

它显着减慢速度

curl_exec

帖子数据可以是任何东西,它会减慢速度。

即使我设置

curl_setopt($ch, CURLOPT_POST, false);

它很慢。

我将尝试通过仅将参数作为查询字符串添加到 URI 来解决此问题。

第二次更新:

确认如果我只是使用GET调用URI并将参数作为查询字符串传递,则比使用POST并将参数放在正文中要快得多。


答案 1

CURL 在 DNS 查找方面存在一些问题。尝试使用 IP 地址而不是域名。


答案 2

Curl能够准确地告诉每件作品花了多长时间以及速度慢(名称查找,连接,传输时间)。运行curl_exec后使用curl_getinfo (http://www.php.net/manual/en/function.curl-getinfo.php)。

如果 curl 很慢,它通常不是 PHP 代码,它几乎总是与网络相关。


推荐