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 <[email protected]>
<http://bugs.python.org/issue25596>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com