Php 缓存文件读取是否会加快处理速度?
我有一个从文件中读取和处理数百万行的代码,该文件的运行时间仍然比我想要的长 以下是主循环:Php 缓存文件读取是否会加快处理速度?,php,performance,file,caching,optimization,Php,Performance,File,Caching,Optimization,我有一个从文件中读取和处理数百万行的代码,该文件的运行时间仍然比我想要的长 以下是主循环: while( $hash = $this->readLineFromFile($table) ) { $hash = $this->process($hash); if ($hash) $this->store($table, $hash); } 因此,每个循环从文件(硬盘上)中读取一行内容,对其进行处理并存储在内存中 我的问题是: 为了加快代码速
while( $hash = $this->readLineFromFile($table) ) {
$hash = $this->process($hash);
if ($hash) $this->store($table, $hash);
}
因此,每个循环从文件(硬盘上)中读取一行内容,对其进行处理并存储在内存中
我的问题是:
$result = file_get_contents($file, null, null, $offset, $maxlen);
$array = explode('\n', $result);
然后迭代$array
,除非到达最后一个数组条目,在这种情况下,我需要重复读取$arrayNew
,将$arrayNew
中的最后一个条目与$arrayNew
中的第一个粘合在一起,处理它,然后继续处理$arrayNew
的其余部分
我觉得有点不舒服,有人知道这样做的好代码示例吗?你检查过了吗,你真的是磁盘绑定的吗?例如,从一个实验室进行测试ramdisk@EugenRieck基于我的假设。它在那里的运行速度也比我的本地SDD慢。有没有一个简单的方法来检查它?如果你正在阅读整个文件,你可以试试。@Passenger这个文件很大-差不多500MB,但我只有300MB可用。所以我不能一次读完它。我必须一行一行地处理和压缩它,然后我才能存储它。试着
fread()
将其分成约20-100MB的块,然后处理!