Edit report at https://bugs.php.net/bug.php?id=51262&edit=1

 ID:                 51262
 Updated by:         [email protected]
 Reported by:        h dot reindl at thelounge dot net
 Summary:            RecursiveDirectoryIterator sucks performance
-Status:             Open
+Status:             Assigned
 Type:               Bug
 Package:            SPL related
 Operating System:   win32 only
 PHP Version:        5.3.2
-Assigned To:        
+Assigned To:        colder
 Block user comment: N
 Private report:     N



Previous Comments:
------------------------------------------------------------------------
[2010-03-10 14:36:58] h dot reindl at thelounge dot net

Description:
------------
On Linux it is really easy to read recursive folder-listings with SPL even if 
there are many files and folders, i need here between 1 and 3 seconds after 
cold start of the machine on my fedora-box

On Windows the same needs between 180 and 240 seconds and "process explorer" 
shows > 1 MB I/O the whole time, same script, same folders contents, same 
php-version

WHAT do you do on windows? 
Are you reading all the 30.000 files instead listing them only?

Test script:
---------------
<?php
$files    = array();
$folders  = array();
$spl_objects = new RecursiveIteratorIterator(new 
RecursiveDirectoryIterator($path), RecursiveIteratorIterator::CHILD_FIRST);
try
{
 foreach($spl_objects as $filename=>$spl_object)
 {
  if(DIRECTORY_SEPARATOR === "\\")
  {
   $filename = str_replace(DIRECTORY_SEPARATOR, '/', $filename);
  }
  if(substr($filename, 0, 2) === './')
  {
   $filename = substr($filename, 2);
  }
  switch($spl_object->isDir())
  {
   case false: $files[$filename] = $spl_object->getMTime(); break;
   case true:  $folders[] = $filename; break;
  }
 }
}
catch(UnexpectedValueException $e)
{
 error_log('Directory "' . $path . '" contained a directory we can not recurse 
into');
 return false;
}
sort($folders);
ksort($files);
$enumerate_list = array('files'=>$files, 'folders'=>$folders);
unset($folders);
unset($files);
?>

Expected result:
----------------
a normal performance

Actual result:
--------------
waiting minutes to get hughe folder-listings


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=51262&edit=1

Reply via email to