yield 改写遍历目录方法,内存使用好低啊
来源:互联网 发布:pc优化软件 编辑:程序博客网 时间:2024/06/14 20:51
<?php/** * Created by PhpStorm. * User: Administrator * Date: 2017/4/27 * Time: 18:07 */ini_set('max_execution_time',0);function read_dir(){ $dir_path = './contact/'; $dir_handle = opendir($dir_path); while( ($file = readdir($dir_handle)) !== FALSE ) { if ($file == '.' || $file == '..') continue; yield $file; } closedir($dir_handle);}function file_process($file){ $dir_path = './contact/'; $file_path = $dir_path.$file; $file_handle = fopen($file_path,'r'); while( ( $line = fgets($file_handle) ) !== FALSE ){ yield $line; } fclose($file_handle);}function process(){ $use_start = memory_get_usage(); $date = []; foreach(read_dir() as $file){ foreach(file_process($file) as $line){ $file_name = explode("-new",$file); $key = $file_name[0]; $date[$key] = []; $date[$key]['sum'] = 0; $date[$key]['exception'] = 0; $date[$key]['sum'] +=1; $line_data = explode(',',$line); if(trim($line_data[2]) == '无'){ $date[$key]['exception'] += 1; } } $percent = ($date[$key]['exception'] / $date[$key]['sum'] ) * 100; $date[$key]['percent'] = round($percent,2,PHP_ROUND_HALF_UP); $runing = memory_get_usage(); echo $runing-$use_start.' '; }}process();
0 0
- yield 改写遍历目录方法,内存使用好低啊
- python yield遍历目录
- C#使用yield关键字让自定义集合实现foreach遍历的方法
- 目录遍历的方法
- 目录遍历的方法
- PHP 遍历目录方法
- 遍历目录方法
- python使用yield来减少内存开销
- 改写方法
- 使用生成器遍历目录
- yield,sleep,join方法的使用
- java中yield()方法如何使用
- yield方法
- java遍历文件目录方法
- php 遍历目录文件方法
- nodejs遍历目录的方法
- JAVA 嵌套目录遍历方法 遍历文件夹 嵌套遍历方法
- yield 使用
- sync 数据同步
- golang defer 语句匿名函数和具名函数的区别
- 浅谈ListView和RecyclerView
- Ajax技术
- MVC 向页面传值方式
- yield 改写遍历目录方法,内存使用好低啊
- SpringMVCController介绍及常用注解
- TCP/IP、Http、Socket的区别
- c#上位机实现八路液位监测
- 俄罗斯方块之二授课计划总体规划
- ftp服务器(ftp/tftp)、 Samba服务器、NFS服务器的区别
- 蓝桥杯 入门训练 A+B问题 Java
- MyEclipse、Eclipse在自动跳出ThreadPoolExecutor的debug窗口解决方法
- C3P0、BoneCP、DBCP、Proxool四个时下流行的Java连接池之间的比较