Bug #78285 [Opn->Ver]: file_exists is 30 times slover than is_dir
| From: | cmb@php.net | Date: | Mon, 15 Jul 2019 09:49:40 +0000 |
| Subject: | Bug #78285 [Opn->Ver]: file_exists is 30 times slover than is_dir | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-221774@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=78285&edit=1
ID: 78285
Updated by: cmb@php.net
Reported by: video dot ice dot power at seznam dot cz
Summary: file_exists is 30 times slover than is_dir
-Status: Open
+Status: Verified
Type: Bug
Package: *Directory/Filesystem functions
Operating System: Windows 10
PHP Version: 7.3.7
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
<?php
$t0 = hrtime(true);
for ($i = 0; $i < 1000; $i++) {
is_dir(__DIR__);
}
$t1 = hrtime(true);
for ($i = 0; $i < 1000; $i++) {
file_exists(__DIR__);
}
$t2 = hrtime(true);
printf("is_dir took %f ms\n", ($t1 - $t0)/10e6);
printf("file_exists took %f ms\n", ($t2 - $t1)/10e6);
outputs for me something like:
is_dir took 0.051130 ms
file_exists took 3.395850 ms
Previous Comments:
------------------------------------------------------------------------
[2019-07-13 20:13:22] video dot ice dot power at seznam dot cz
Description:
------------
file_exists() is 30 times slover than is_dir()
Test script:
---------------
for ($i = 0; $i < 1000; $i++) { is_dir('some path to directory'); } // 0.5ms
for ($i = 0; $i < 1000; $i++) { file_exists('some path to directory'); } // 15 ms
Expected result:
----------------
The file_exists method should run in about the same time as the is_dir method does.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=78285&edit=1