Bug #78094 [Fbk->Opn]: File Search Problem Excessive Time
| From: | dpfender44 at gmail dot com | Date: | Sat, 01 Jun 2019 15:00:20 +0000 |
| Subject: | Bug #78094 [Fbk->Opn]: File Search Problem Excessive Time | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-221074@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=78094&edit=1
ID: 78094
User updated by: dpfender44 at gmail dot com
Reported by: dpfender44 at gmail dot com
Summary: File Search Problem Excessive Time
-Status: Feedback
+Status: Open
Type: Bug
Package: *Directory/Filesystem functions
Operating System: Windows 10
PHP Version: Next Major Version
Block user comment: N
Private report: N
New Comment:
All of the filesystem functions take longer than in PHP 7.3.6 and is_dir() is the worst.
Elapsed time for a recursive file search over several directories is in units of seconds.
Time values are derived from using microtime() before and after each system function is used.
Total count of files returned is 777;
PHP 7.3.6
getcwd total 0.00004625
is_dir total 0.02332211
opendir total 0.00398731
readdir total 0.00258327
chdir total 0.00327039
closedir total 0.00072503
Total Elapsed 0.03843498
PHP 7.4.0-dev
getcwd total 0 00007987
is_dir total 3.32146049
opendir total 0.00476623
readdir total 0.00765395
chdir total 0.00488377
closedir total 0.00070310
Total Elapsed 3.35602283
Previous Comments:
------------------------------------------------------------------------
[2019-06-01 11:14:58] ab@php.net
Thanks for the report. Could you please reduce the repro snippet to the absolutely required lines,
only Windows related, only issue related?
Thanks.
------------------------------------------------------------------------
[2019-05-31 17:09:43] dpfender44 at gmail dot com
Description:
------------
My function scan_dir() uses opendir(), chdir(), readdir(), is_dir(), closedir() to scan for files on
the server.
PHP version 7.4.0-dev does the same scan as version 7.3.6 but takes about 100 times longer.
This is all done on the same server, but just switching between PHP versions on 5/31/19.
The extra time seems to be spent doing readdir().
Test script:
---------------
http://djpsrc.djpnet.dyndns.org/test_scan_dir.php.txt
Expected result:
----------------
PHP version 7.3.6
Operating System Microsoft Windows [Version 10.0.17763.503]
File search types: .mp4|.webm|.mp3|.wav|.mid|.txt
Units of seconds (Unix timestamp from microtime()):
Start file search time (1559247589.134)
End file search time (1559247589.1699)
Elapsed time (0.035879135131836)
Resulting file match count (777)
Actual result:
--------------
PHP version 7.4.0-dev
Operating System Microsoft Windows [Version 10.0.17763.503]
File search types: .mp4|.webm|.mp3|.wav|.mid|.txt
Units of seconds (Unix timestamp from microtime()):
Start file search time (1559320102.0205)
End file search time (1559320105.3702)
Elapsed time (3.3497362136841)
Resulting file match count (777)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=78094&edit=1