为什么使用CodeIgniter';s Curl库比在普通PHP中使用Curl慢?
最近我用Curl将我的抓取代码移到了CodeIgniter。我正在使用来自的Curl CI库。我把刮片过程放在一个控制器中,然后我发现刮片的执行时间比我在普通PHP中构建的慢 CodeIgniter输出结果需要12秒,而在普通PHP中只需要6秒。两者都包含了HTML DOM解析器的解析过程 下面是我在CodeIgniter中的Curl代码:为什么使用CodeIgniter';s Curl库比在普通PHP中使用Curl慢?,php,codeigniter,curl,performance,Php,Codeigniter,Curl,Performance,最近我用Curl将我的抓取代码移到了CodeIgniter。我正在使用来自的Curl CI库。我把刮片过程放在一个控制器中,然后我发现刮片的执行时间比我在普通PHP中构建的慢 CodeIgniter输出结果需要12秒,而在普通PHP中只需要6秒。两者都包含了HTML DOM解析器的解析过程 下面是我在CodeIgniter中的Curl代码: function curl($url, $postdata=false) { $agent = "Mozilla/5.0 (Windows; U; Wi
function curl($url, $postdata=false)
{
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
$this->curl->create($url);
$this->curl->ssl(false);
$options = array(
'URL' => $url,
'HEADER' => 0,
'AUTOREFERER' => true,
'FOLLOWLOCATION' => true,
'TIMEOUT' => 60,
'RETURNTRANSFER' => 1,
'USERAGENT' => $agent,
'COOKIEJAR' => dirname(__FILE__) . "/cookie.txt",
'COOKIEFILE' => dirname(__FILE__) . "/cookie.txt",
);
if($postdata)
{
$this->curl->post($postdata, $options);
}
else
{
$this->curl->options($options);
}
return $this->curl->execute();
}
非codeigniter(普通php)代码:
函数curl($url、$binary=false、$post=false、$cookie=false){
}
有人知道为什么这个CodeIgniter旋度比较慢吗??或者可能是因为简单的html dom解析器???我需要了解更多关于CI库的信息,如果它正在对收集的数据执行任何额外的任务,但我会尝试将您的方法命名为库名称以外的名称。我在Facebook库中遇到了一些问题,在名为Facebook的方法中调用它会导致问题$如果您谈论的是库或方法,那么这个->curl对您来说可能是不明确的 另外,尝试添加调试探查器,看看它会产生什么结果。将其添加到构造或方法中:
$this->output->enable_profiler(TRUE);
我不确定我是否知道这个问题的确切答案,但我对Curl&CI有一些观察,因为我广泛使用它
无可奉告,这太棒了——而且您可以对“对话”进行细粒度的控制。您可以发布您的非codeigniter代码,这样我就可以自己测试它了吗?您在本地机器上测试吗?您是否通过curl和codeigniter的curl发送相同大小的数据?您是否使用100个连接进行测试?是的,我使用相同的数据和大小在localhost xampp上进行了测试,您使用100个连接进行测试是什么意思?发布了非codeigniter代码…可能是html解析过程吗??我在普通php和codeigniteris上都使用simple_html_dom.php,12秒的时间仅仅是为了一次解析,还是为了批处理?对象包装器和魔术方法的使用(此处调用)确实有一些开销,但加倍的时间似乎出乎意料。
$this->output->enable_profiler(TRUE);