Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用CodeIgniter';s Curl库比在普通PHP中使用Curl慢?_Php_Codeigniter_Curl_Performance - Fatal编程技术网

为什么使用CodeIgniter';s Curl库比在普通PHP中使用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

最近我用Curl将我的抓取代码移到了CodeIgniter。我正在使用来自的Curl CI库。我把刮片过程放在一个控制器中,然后我发现刮片的执行时间比我在普通PHP中构建的慢

CodeIgniter输出结果需要12秒,而在普通PHP中只需要6秒。两者都包含了HTML DOM解析器的解析过程

下面是我在CodeIgniter中的Curl代码:

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有一些观察,因为我广泛使用它

  • 检查DNS缓存/查询的状态
  • 我注意到,当代码从我的开发桌面上传到托管的登台服务器时,速度大大加快。它被追踪到一个DNS问题,通过重新启动堡垒主机解决了这个问题。。。有时可以使用IP地址而不是主机名来检查这一点

  • 菲尔的“图书馆”实际上只是一个包装
  • 他真正做的就是将CI风格的函数映射到PHP Curl库。几乎没有别的事情发生。我花了一些时间四处闲逛(我忘了为什么),这真的很平常。也就是说,可能会有一些一般的CI开销——您可能会看到在另一个类似的框架(Fuel、Kohana、Laravel等)中发生了什么

  • 检查反向查找
  • 一些API进行反向DNS检查,作为其安全扫描的一部分。有时主机名或其他头文件在被掩埋的配置中设置得不好,可能会引起真正的麻烦

  • 使用Chrome的Postman扩展调试RESTAPI

  • 无可奉告,这太棒了——而且您可以对“对话”进行细粒度的控制。

    您可以发布您的非codeigniter代码,这样我就可以自己测试它了吗?您在本地机器上测试吗?您是否通过curl和codeigniter的curl发送相同大小的数据?您是否使用100个连接进行测试?是的,我使用相同的数据和大小在localhost xampp上进行了测试,您使用100个连接进行测试是什么意思?发布了非codeigniter代码…可能是html解析过程吗??我在普通php和codeigniteris上都使用simple_html_dom.php,12秒的时间仅仅是为了一次解析,还是为了批处理?对象包装器和魔术方法的使用(此处调用)确实有一些开销,但加倍的时间似乎出乎意料。
    $this->output->enable_profiler(TRUE);