Serhiy Storchaka added the comment:

In general the patch LGTM. It allows to speed up glob by 5-10% in warn test. 
But much more gain we can achieve by using os.scandir(). Here are results of 
microbenchmarks:

$ ./python -m timeit -s "from glob import glob" -- "glob('**/*', 
recursive=True)"
Unpatched:        201 msec per loop
Using isdir():    181 msec per loop
Using scandir():  65.2 msec per loop

$ ./python -m timeit -s "from glob import glob" -- "glob('/usr/lib*/**/*', 
recursive=True)"
Unpatched:        2.06 sec per loop
Using isdir():    1.92 sec per loop
Using scandir():  820 msec per loop

$ ./python -m timeit -s "from glob import glob" -- "glob('/usr/lib*/**/', 
recursive=True)"
Unpatched:        1.77 sec per loop
Using isdir():    1.61 sec per loop
Using scandir():  431 msec per loop

Yet one benefit is that iglob() now yields path names without the delay for 
reading the full content of a directory (see issue22167).

----------
nosy: +benhoyt, haypo
priority: low -> normal
Added file: http://bugs.python.org/file41474/glob_scandir.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue25596>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to