所以我和Curl一直在搞乱,只是为了尽可能多地了解它。我能够使用xampp在我的localhost上获得我想要的结果。当我运行100个请求时,我将其降低6.3秒。这对我来说完全没问题。我的本地主机我正在使用PHP 5.5.11。
但是当我使用PHP 5.5.37移动到我的共享服务器时,从同一站点运行相同的100个请求需要37秒。我发现的问题是curl_multi_select函数。我已经在所有块周围添加了时间戳,唯一需要6-7秒才能完成的是curl_multi_select周围的代码。
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($this->MH) == -1) {
//give time to process otherwise you get caught in a loop
usleep(100);
}
do {
$mrc = curl_multi_exec($this->MH, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
通常我的localhost比共享服务器慢,所以我不确切知道这里发生了什么。这是我发送curl的选项列表,以防您看到可能导致问题的内容。它们是小写的,但函数将它们转换为正确的常量。
$this->opts = Array(
'url' => ''
,'returntransfer' => 1
,'followlocation' => 1
,'header' => 0
,'post' => false
,'ipresolve' => 'CURL_IPRESOLVE_V4'
,'timeout' => 10
,'connecttimeout' => 5
,'verbose' => true
,'useragent' => $_SERVER['HTTP_USER_AGENT']
,'httpheader' => null
,'encoding' => ''
,'ssl_verifypeer' => false
,'ssl_verifyhost' => false
);
这让我感到很恼火我已经让它在我当地的主机上工作到了一个我绝对可以使用的地方。但是我想要使用的共享服务器上的30多秒就太多了。而且我已经尝试了好几天让自己开始工作。只是希望有人可以在这里挑选一些我不知道的东西。任何帮助将不胜感激。