| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Note that in general, we do not accept PRs with minor speedups like this. Moreover, any code change risks the introduction of new bugs, as the currently failing CI indicates. |
Sorry, something went wrong.
|
Also note that this is still a work in progress:
|
Sorry, something went wrong.
… into speedup-os.path
|
Also, in the old code this loop calls _get_bothseps() in every iteration without caching the result: Lines 377 to 378 in e338e1a For long users (>100 characters) the new code is 1.61x faster, which is not a minor speedup. |
Sorry, something went wrong.
|
Closing this PR, as the linked issue is closed. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Benchmark:
ntpath.py
join() 500000 loops, best of 5: 693 nsec per loop # before 500000 loops, best of 5: 650 nsec per loop # after # -> 1.07x faster split() 500000 loops, best of 5: 866 nsec per loop # before 500000 loops, best of 5: 799 nsec per loop # after # -> 1.08x faster ismount() 200000 loops, best of 5: 1.19 usec per loop # before 200000 loops, best of 5: 1.13 usec per loop # after # -> 1.05x faster expanduser() 500000 loops, best of 5: 973 nsec per loop # before 500000 loops, best of 5: 967 nsec per loop # after # -> no difference expanduser('~' + 'a' * 100) 20000 loops, best of 5: 18 usec per loop # before 20000 loops, best of 5: 11.2 usec per loop # after # -> 1.61x faster (for long users) realpath(): cwd 1000000 loops, best of 5: 228 nsec per loop # before 1000000 loops, best of 5: 236 nsec per loop # after # -> only 8 nsec slower realpath('C:/'): cwd 1000000 loops, best of 5: 232 nsec per loop # before 20000000 loops, best of 5: 16.3 nsec per loop # after # -> always 16.3 nsec (for absolute paths)posixpath.py
isabs() 1000000 loops, best of 5: 230 nsec per loop # before 1000000 loops, best of 5: 207 nsec per loop # after # -> 1.11x faster join() 1000000 loops, best of 5: 322 nsec per loop # before 1000000 loops, best of 5: 244 nsec per loop # after # -> 1.32x faster split() 1000000 loops, best of 5: 348 nsec per loop # before 1000000 loops, best of 5: 323 nsec per loop # after # -> 1.08x faster basename() 1000000 loops, best of 5: 285 nsec per loop # before 1000000 loops, best of 5: 263 nsec per loop # after # -> 1.08x faster dirname() 1000000 loops, best of 5: 290 nsec per loop # before 1000000 loops, best of 5: 259 nsec per loop # after # -> 1.12x faster expanduser() 200000 loops, best of 5: 1.35 usec per loop # before 200000 loops, best of 5: 1.25 usec per loop # after # -> 1.08x faster abspath() 20000 loops, best of 5: 16.7 usec per loop # before 20000 loops, best of 5: 16.8 usec per loop # after # -> no difference abspath('.') 20000 loops, best of 5: 17 usec per loop # before 20000 loops, best of 5: 15.1 usec per loop # after # -> 1.13x faster (for relative paths) commonpath() 200000 loops, best of 5: 1.62 usec per loop # before 200000 loops, best of 5: 1.48 usec per loop # after # -> 1.09x faster