Stefan Behnel added the comment: One more comment: I also benchmarked the change in long_true_div() now and found that it's only a minor improvement for large numbers and a *pessimisation* for small numbers:
Before: $ ./python -m timeit -s 'x = 5' 'x / -1' 10000000 loops, best of 3: 0.0313 usec per loop $ ./python -m timeit -s 'x = 5' 'x / 1' 10000000 loops, best of 3: 0.0307 usec per loop $ ./python -m timeit -s 'x = 2**200 + 3**234 + 5**89 + 7**123' 'x / 1' 10000000 loops, best of 3: 0.101 usec per loop $ ./python -m timeit -s 'x = 2**200 + 3**234 + 5**89 + 7**123' 'x / -1' 10000000 loops, best of 3: 0.104 usec per loop Patched: $ ./python -m timeit -s 'x = 5' 'x / 1' 10000000 loops, best of 3: 0.0569 usec per loop $ ./python -m timeit -s 'x = 5' 'x / -1' 10000000 loops, best of 3: 0.0576 usec per loop $ ./python -m timeit -s 'x = 2**200 + 3**234 + 5**89 + 7**123' 'x / -1' 10000000 loops, best of 3: 0.056 usec per loop $ ./python -m timeit -s 'x = 2**200 + 3**234 + 5**89 + 7**123' 'x / 1' 10000000 loops, best of 3: 0.056 usec per loop $ ./python -m timeit -s 'x = 2**200 + 3**234 + 5**89 + 7**123' 'x / -2' 10000000 loops, best of 3: 0.106 usec per loop So, just for completeness, here's the patch without that part, with changes only in l_divmod() and long_mul(), with the timeit results as given in my previous comment. ---------- Added file: http://bugs.python.org/file36746/mul_div_by_1_fast_path_3.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue22501> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com