Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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
从远程NFS共享复制时,PHP复制函数的速度比linux cp命令慢_Php_Linux_Cp - Fatal编程技术网

从远程NFS共享复制时,PHP复制函数的速度比linux cp命令慢

从远程NFS共享复制时,PHP复制函数的速度比linux cp命令慢,php,linux,cp,Php,Linux,Cp,我一直在尝试从另一台服务器上的nfs共享复制音频文件。当我使用PHP复制一个8 MB的音频文件时,需要5.5秒。但是,在shell中使用cp命令需要0.845秒 有人知道问题是什么以及如何解决吗 <?php $result = copy('/remote/dir/remoteFile.wav’,’12345.wav'); var_dump($returnVar); ?> 此外,您可以确定PHP副本的速度会比linux cp慢,因为一个使用本机操作系统级别的调用,另一个是应用

我一直在尝试从另一台服务器上的
nfs共享
复制音频文件。当我使用
PHP
复制一个8 MB的音频文件时,需要5.5秒。但是,在shell中使用cp命令需要0.845秒

有人知道问题是什么以及如何解决吗

<?php
  $result = copy('/remote/dir/remoteFile.wav’,’12345.wav');
  var_dump($returnVar);
?>

此外,您可以确定PHP副本的速度会比linux cp慢,因为一个使用本机操作系统级别的调用,另一个是应用层,通过web服务器等调用相同的调用。需要经过的层太多,需要处理的通知,需要遵守的协议等等。。我不认为这是完全可以解决的


您可以尝试使用
exec('cp..')
命令来代替
copy()
,该命令将直接尝试从php运行linux cp命令。可能没有shell中的
cp速度快,但可能比php中的
copy()快一点。试一试..

在PHP中使用
cp
命令之后,您是否尝试过使用该命令?如果是这样,文件很可能在磁盘缓存中,测试时会得到不同的结果。@HonkyTonk可能是真的,但5秒内8MB的速度约为12.5 Mb/s,通过本地网络的开销将非常缓慢。此文件是通过LAN还是internet复制的(别忘了考虑VPN等)?这是否可能是由于网络噪音造成的?这种时间上的巨大差异是否可以反复重现?我很想知道,如果你尝试运行
cp
,使用PHP
exec(“cp file newLocation”)
或类似的工具,你会得到什么样的结果;然而,复制又花了20毫秒。我在远程服务器上用不同的文件名制作了很多副本。那么,我什么时候更改源文件名和目标文件名呢?这与
cp
命令的工作方式大不相同。感谢我尝试了
exec('cp..')
,但是复制又花了20毫秒。(我知道20ms不是很多)
shell\u exec
快一点