PHP curl获取请求的速度较慢

PHP curl获取请求的速度较慢,php,curl,zend-framework,drupal,Php,Curl,Zend Framework,Drupal,我在自定义Zend Framework库中使用curl向Drupal网站发出GET请求。在Drupal端,我使用rest导出页面来接收get请求并返回一些数据 这是我在ZF2 $this->chanel = curl_init(); curl_setopt($this->chanel, CURLOPT_URL, "SOME URL LINK"); curl_setopt($this->chanel, CURLOPT_TIMEOUT, 30); curl_setopt($thi

我在自定义Zend Framework库中使用curlDrupal网站发出GET请求。在Drupal端,我使用rest导出页面来接收get请求并返回一些数据

这是我在ZF2

$this->chanel = curl_init();
curl_setopt($this->chanel, CURLOPT_URL, "SOME URL LINK");
curl_setopt($this->chanel, CURLOPT_TIMEOUT, 30); 
curl_setopt($this->chanel, CURLOPT_RETURNTRANSFER,1);
curl_setopt($this->chanel, CURLOPT_USERAGENT, 'Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101');
$result=curl_exec ($this->chanel);
curl_close ($this->chanel);
DrupalZend Framework网站都位于mylocalhost

执行时间通常为15秒左右。这太长了

我用Restlet客户端(Chrome扩展)尝试了相同的链接,执行和检索数据大约需要1秒或更短的时间


你有什么建议为什么它这么慢,以及我如何提高速度吗?

试着在代码中添加一些记录器,在不同的代码块和函数中添加时间戳,检查curl是否需要时间或其他什么?将时间戳和记录器放在每行之后,以调试性能问题

还可以尝试从命令行使用它,如下所示:

curl --get "URL HERE"

然后检查它是否快,如果它快,您认为代码慢,请尝试从代码中执行直接命令。

尝试在代码中放置一些记录器,在各种代码块和函数中放置时间戳,检查curl是否需要时间或其他什么?将时间戳和记录器放在每行之后,以调试性能问题

还可以尝试从命令行使用它,如下所示:

curl --get "URL HERE"

并检查它是否快,如果它快,您认为代码慢,请尝试从您的代码执行直接命令。

请使用
ip地址
而不是
主机名
。 如果您的Drupal与ZF2应用程序在同一台机器上,您可以使用
127.0.0.1

我认为这可能是DNS查找造成的。

请使用
ip地址
而不是
主机名
。 如果您的Drupal与ZF2应用程序在同一台机器上,您可以使用
127.0.0.1

我想这可能是DNS查找造成的。

我已经这样做了。这是需要很长时间的curl_exec。在命令行上,一切都运行得很快。尝试执行命令行,然后使用exec()函数从代码中执行。同样,不幸的是,这有点奇怪,如果exec()函数需要时间,那么我们实际上无能为力。您必须自己找到解决方案。您说过您在命令行中使用curl进行了尝试。这是不是来自运行Zend Framework应用程序的服务器?由于您正在连接到localhost,如果改用127.0.0.1,会有什么不同吗?将
curl-vyourURL
的输出添加到您的问题中可能也会有所帮助。我已经这样做了。这是需要很长时间的curl_exec。在命令行上,一切都运行得很快。尝试执行命令行,然后使用exec()函数从代码中执行。同样,不幸的是,这有点奇怪,如果exec()函数需要时间,那么我们实际上无能为力。您必须自己找到解决方案。您说过您在命令行中使用curl进行了尝试。这是不是来自运行Zend Framework应用程序的服务器?由于您正在连接到localhost,如果改用127.0.0.1,会有什么不同吗?将
curl-v yoururl的输出添加到您的问题中也可能会有所帮助。在curl\u exec之后运行,可能会有所帮助。它显示200如果返回的内容超过此值,请阅读文档。文档太长,无法在此处发布。重要的是总时间是18.047。与starttransfer\u时间相同。能否显示drupal端代码?您正在使用服务模块吗?在curl_exec之后运行,它可能会有所帮助。它显示200。如果返回的内容超过此值,请阅读文档。文档太长,无法在此处发布。重要的是总时间是18.047。与starttransfer\u时间相同。能否显示drupal端代码?您使用的是服务模块吗?不是,两个网站位于同一台服务器上,并且如上所述的dns查找不需要任何时间。不是,两个网站位于同一台服务器上,如上所述的dns查找不需要任何时间