New submission from Raymond Hettinger <raymond.hettin...@gmail.com>:
The expression 'x * x' is faster than 'x ** 2'. In Python3.10, the speed difference was enormous. Due to ceval optimizations, the difference in Python3.11 is tighter; however, there is still room for improvement. The code for long_pow() doesn't currently have a fast path for squaring which is by far the most important case. $ python3.10 -m timeit -r 11 -s 'x = 10' 'x ** 2' 1000000 loops, best of 11: 201 nsec per loop $ python3.10 -m timeit -r 11 -s 'x = 10' 'x * x' 10000000 loops, best of 11: 21.9 nsec per loop $ python3.11 -m timeit -r 11 -s 'x = 10' 'x ** 2' 10000000 loops, best of 11: 32 nsec per loop $ python3.11 -m timeit -r 11 -s 'x = 10' 'x * x' 20000000 loops, best of 11: 17.6 nsec per loop ---------- components: Interpreter Core messages: 408076 nosy: rhettinger priority: normal severity: normal status: open title: Optimize long_pow for the common case type: performance _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue46020> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com