PHP处理一个5G文件,使用内存512M的,数据为整形,从大到小排序,优化排序算法
2016-04-13 16:53
746 查看
$file='./new.txt'; $fp = fopen($file, "r"); $chunk = 4096;//一次处理1M的字节 1M=1024*1024 $fs = filesize($file); //$max = ($fs == PHP_INT_MAX) ? PHP_INT_MAX : filesize($file); $readData =''; for ($len = 0; $len < $max; $len += $chunk) { $seekSize = ($max - $len > $chunk) ? $chunk : $max - $len; fseek($fp, ($len + $seekSize) * -1, SEEK_END); // $readData = fread($fp, $seekSize) . $readData; // var_dump($readData); // echo '<br>'; //排序$readData $readData = fread($fp, $seekSize); sorting_array($readData); //写入新文件 $t = fopen('./new.text', 'w'); fwrite($t,$readData); fclose($t); } var_dump($readData); fclose($fp); //排序算法 function sorting_array($string){ } 目前只是把原始文件按块处理,里面可以经行排序,在吧新文件使用插入排序法,但是内存限制,各种超时,实现代码估计比较难
相关文章推荐
- yii2 安装
- PHP中使用递归函数
- ecshop安装到php5.2版本以上出错,解决方法
- php.ini文件中的include_path设置和$_SERVER['DOCUMENT_ROOT']
- php获取某一年的工作日列表
- php数据库操作
- 解决PHP中文乱码
- 比较php字符串连接的效率
- 实习日志-php-分别用print_r,var_dump,var_export打印数组
- phpStorm php环境变量的配置
- php之static和&关键字解析
- php异常处理
- java模拟PHP的pack和unpack类
- phpstorm invalid descendent file name
- php远程下载类分享
- PHP-迭代器与序列化
- phpword的几个坑
- PHP 实现商品的无限规格实现思路
- ThinkPHP之OAuth2.0环境搭建
- Thinkphp和onethink实现微信支付插件