kmo*_*oor 10 python performance mathematical-optimization cpu-speed
我正在尝试优化我的 Python 代码。之间:
y = x*x
Run Code Online (Sandbox Code Playgroud)
或者
y = x**2
Run Code Online (Sandbox Code Playgroud)
如果我需要在一个速度关键的程序中进行一万亿次迭代,我应该选择哪一个?
x**2比 更快x*x。
O(n)在 Python 中实现指数会产生一些开销,因此使用乘法计数较少的自定义乘法通常会更快。x*x*x*x*x比 快得多x**5。指数时间是一种常数。乘法时间随着指数参数的增加而增加,因此对于较大的参数,最好使用指数。然而,对于非常小的参数(2,在你的例子中),指数比乘法更快。并且x**2比 更快x*x,尽管x**3比 慢得多x*x*x。您可以在这个答案中找到一个很好的基准。