|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2010-03-10 22:09 UTC] jani@php.net
-Operating System: Windows
+Operating System: win32 only
[2011-11-16 13:54 UTC] felipe@php.net
-Status: Open
+Status: Assigned
-Assigned To:
+Assigned To: colder
[2017-10-24 07:25 UTC] kalle@php.net
-Status: Assigned
+Status: Open
-Assigned To: colder
+Assigned To:
[2020-04-22 07:32 UTC] alexinbeijing at gmail dot com
[2020-04-22 07:36 UTC] requinix@php.net
-Status: Open
+Status: Feedback
[2020-04-22 07:36 UTC] requinix@php.net
[2020-05-03 04:22 UTC] php-bugs at lists dot php dot net
[2020-05-03 05:09 UTC] bugreports at gmail dot com
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Nov 06 11:00:01 2025 UTC |
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