码迷,mamicode.com
首页 > Web开发 > 详细

用php协程处理文件和常规分析文件的使用内存比较

时间:2017-08-17 20:15:49      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:file   eof   fclose   get   open   gets   例子   cti   协程   

$file = "example.txt";   //10万行数据

功能:读取文件中的每一行并输出

方法一:常规方法

  $fp = fopen($file,"r");
  while(!feof($fp)){
      $line = fgets($fp,1024);
    
  }
  fclose($fp);

  使用内存:240 byte

 

方法二:使用协程

  function getline($file){
      $fp = fopen($file,"r");
      while(!feof($fp)){
          $line = fgets($fp,1024);
          yield $line;
      }
      fclose($fp);
  }
  foreach(getline("example.txt") as $n=>$line){
    
  }

  使用内存:216 byte

 

从这个简单的例子可以看出,使用协程处理文件大约可以节省10%的内存分配,特别是在一些大的数组处理方面也可以尝试使用。

用php协程处理文件和常规分析文件的使用内存比较

标签:file   eof   fclose   get   open   gets   例子   cti   协程   

原文地址:http://www.cnblogs.com/sblack/p/7383710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!