我正在使用PHP 7.1(如果它有任何区别),我正在寻找使用fopen打开文件处理程序的可能问题,但在很长一段时间后关闭该文件处理程序(可能超过30分钟)。
该方案归结为长期运行的脚本,该脚本定期记录其操作。现在,我使用了一个简单的使用file_put_contents和FILE_APPEND的过程。有用。但随着文件变得越来越大,它随着时间的推移而变慢。
使用fopen和fwrite意味着我可以避免这种减速。唯一的问题是我不会在脚本执行结束之前调用fclose。我认为不断fopen / fclose'ing文件将给我与我当前实现相同的糟糕性能。
任何人都有这方面的内部经验吗?我没有必要阅读文件,只写。
编辑: 更多信息:我目前在笔记本电脑上的Linux VM中运行它(VirtualBox)。我不希望这种设置具有顶级性能。话虽这么说,我仍然注意到随着日志文件变得越来越大而慢下来。
我的代码逻辑简单如下:
while(true)
{
$result = someFunction();
if(!$result)
{
logSomething();
}
else
{
break;
}
}
写入频率是几秒钟。
文件的大小可以达到几GB。