Tea*_*App 8 php performance file-rename
我正在尝试rename()
使用PHP的900 KiB PDF文件.由于某种原因,重命名它需要很长时间.我认为应该是即时的.
这是在CentOS服务器上.在重命名文件时,我可以获取属性,似乎rename()
是复制并用新重命名的文件替换旧文件.
旧名称和新名称路径位于同一目录中.
以前有人偶然发现了这个问题吗?
//If exists change name and then return path
$pieces = explode("@", $filename);
$newName = $pieces[0].' '.$pieces[2];
rename($uidPath.$filename, $uidPath.$newName);
if (preg_match('/pdf/', $pieces[2]))
{
$result['status'] = '1';
$result['path'] = 'path to file';
}
else
{
$result['status'] = '1';
$result['path'] = 'path to file';
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,PHP 释放文件锁定的速度非常慢fclose()
,因此如果您在移动文件之前写入文件,则可能需要等待一段时间。我在低优先级后台作业中遇到了这个问题,所以我并没有真正研究为什么会发生这种情况,或者我可以采取什么措施来防止它 - 我只是在 和 之间添加了 1 秒fclose()
睡眠rename
。