ID: 31515
Updated by: [EMAIL PROTECTED]
Reported By: akorthaus at web dot de
Status: Open
Bug Type: Performance problem
Operating System: Linux 2.4.28 (Gentoo)
PHP Version: 5.0.3
New Comment:
count: 2034
251.505897045
count: 2034
155.706785917
Only difference:
foreach(range(1, 5000) as $unused)
$files = scandir('C:\WINDOWS\System32');
So, not on Win32. Do a foreach like I have done and spread the function
call over quite a few calls, because with repeated execution of a single
function call, it went back and forth for me.
Previous Comments:
------------------------------------------------------------------------
[2005-01-12 13:48:34] akorthaus at web dot de
Description:
------------
I do not understand why the new scandir() function is slower than an
own PHP-function which does the same (I used the "Example 2. PHP 4
alternatives to scandir()" from manual).
I tried this with 50 - 100.000 files, but the result is allways the
same.
my_scandir() is about 50%-100% faster. If I don't sort, it is about
400% faster.
Reproduce code:
---------------
<?php
function my_scandir($dir) {
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
sort($files);
return $files;
}
$t1= microtime(TRUE);
$files = my_scandir('/tmp');
$t2= microtime(TRUE);
echo "count: ".count($files)."\n";
echo $t2-$t1;
echo "\n";
?>
<?php
$t1 = microtime(TRUE);
$files = scandir('/tmp');
$t2= microtime(TRUE);
echo "count: ".count($files)."\n";
echo $t2-$t1;
echo "\n";
?>
Expected result:
----------------
I expect the c-function to be faster
Actual result:
--------------
the php-function is about 50-100% faster
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31515&edit=1