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