PHP:.tar档案的创建非常缓慢


PHP: Creation of .tar archive extremely slow

我想使用下面的代码将大约10000个文件打包到.tar档案中。没有什么太大的——存档的大小不会超过100MB。我的问题是这需要很长时间。事实上,我现在要打包9000个文件一个小时。在shell上,这是在2分钟内完成的,它是一个运行apache2的强大的linux服务器。那么这里出了什么问题?如何提高PHP脚本的速度?

$Path = str_replace('''', '/', realpath($Path));
if (is_dir($Path) === true) {
  $files = new 'RecursiveIteratorIterator(new 'RecursiveDirectoryIterator($Path), 'RecursiveIteratorIterator::SELF_FIRST);
  $archive = new 'PharData('/var/www/test.tar');
     foreach ($files as $file) {                          
         $filePath = $file->getRealPath();
         $archive->addFile($filePath);
     }

RecursiveIteratorIterator相当慢。。。但问题是你们为什么要用它?尝试Phardata buildFromDirectory函数:

<?php
...
if (is_dir($Path) === true) {
  $archive = new PharData('/var/www/test.tar');
  $archive->buildFromDirectory($Path);
}
...
?>

希望有助于