我有大型日志文件300-500兆,并且需要在其中进行搜索。我目前正在使用PHP代码中的grep来做这件事,但我想进一步优化代码。 我需要的数据始终在文件的最后10000行内,所以我希望搜索从结尾开始并向前移动,直到找到模式并停止。grep从文件末尾搜索
我发现一些信息,tac可以做到这一点,但我的性能测试显示,使用tac是4倍慢。 目前我的搜索需要大约0.13秒才能完成,添加tac需要0.50秒。我觉得我失去了一些东西,我会很感激帮助。
我的期望是,如果我正确地从文件中读取文件,这将大大提高进程的速度。
这里是代码,它包括定时器
<?php
exec('grep -r "search var" file.log -b | head -1', $result);
echo $result[0];
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
echo "<br>".$time;
?>
http://unix.stackexchange.com/a/112173 –