I am trying to optimize my Python code. Between:
y = x*x
or
y = x**2
if I need one trillion iterations in a speed-critical program, which one should I choose?
I am trying to optimize my Python code. Between:
y = x*x
or
y = x**2
if I need one trillion iterations in a speed-critical program, which one should I choose?
Copyright © 2021 Jogjafile Inc.
x**2
is faster thanx*x
.Implementation of exponent has some overhead in Python, so it is usually faster to use your custom multiplication
O(n)
with small multiplication count.x*x*x*x*x
is way faster thanx**5
. Exponent time is a sort of constant. Your multiplication time is increasing with exponent parameter, so with a large parameter it is better to use exponent. However, with really very small parameter (2, in your case), exponent is faster than multiplication. Andx**2
is faster thanx*x
, althoughx**3
is way slower thanx*x*x
. You can find a nice benchmark in this answer.