在PHP中长时间保持文件处理程序打开

时间:2017-10-19 18:18:41

标签: php io

我正在使用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。

0 个答案:

没有答案