Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中长时间保持文件处理程序打开_Php_Io - Fatal编程技术网

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

在PHP中长时间保持文件处理程序打开,php,io,Php,Io,我正在使用PHP7.1(如果有什么不同的话),我正在寻找使用fopen打开一个文件处理程序,但在很长一段时间后关闭该文件处理程序可能会出现的问题(可能会超过30分钟) 该场景可以归结为一个长时间运行的脚本,该脚本定期记录其操作。现在,我使用一个简单的过程,使用file\u put\u内容和file\u APPEND。它起作用了。但随着时间的推移,文件越来越大,速度会减慢 使用fopen和fwrite意味着我可以避免这种减速。唯一的问题是,在脚本执行结束之前,我不会调用fclose。我假设不断打开

我正在使用PHP7.1(如果有什么不同的话),我正在寻找使用fopen打开一个文件处理程序,但在很长一段时间后关闭该文件处理程序可能会出现的问题(可能会超过30分钟)

该场景可以归结为一个长时间运行的脚本,该脚本定期记录其操作。现在,我使用一个简单的过程,使用file\u put\u内容和file\u APPEND。它起作用了。但随着时间的推移,文件越来越大,速度会减慢

使用fopen和fwrite意味着我可以避免这种减速。唯一的问题是,在脚本执行结束之前,我不会调用fclose。我假设不断打开/关闭文件会使我的性能与当前实现一样差

有没有人有这方面的内部经验?我不需要读文件,只需要写

编辑: 更多信息:我目前正在笔记本电脑(VirtualBox)上的Linux虚拟机中运行此功能。我不期望此设置具有一流的性能。尽管如此,我仍然注意到随着日志文件越来越大,速度会变慢

我的代码逻辑非常简单:

while(true)
{
    $result = someFunction();
    if(!$result)
    {
        logSomething();
    }
    else
    {
        break;
    }
}
写入的频率是每秒几次


文件的大小可能会变为几GB。

您是否编写了一些代码并遇到内存问题?可能是相关的,没有内存问题。只是写性能下降。这可能与您正在使用的代码或您的系统有关。你能发布更多的细节和你正在使用的代码吗?以及文件开始失去性能时的大小。文件有多大?我一次只写一行巨大的日志文件,其中包含
文件内容
。。。你有没有考虑过有时只是简单地旋转原木?你的评论说它“定期”记录,这表明它没有那么频繁地被写入,对吗?