Python 3.X:为什么nb ** 3比nb * nb * nb慢

时间:2016-01-14 20:10:15

标签: python python-3.x benchmarking

我试图理解为什么1奉献python函数比手动函数慢。

我使用timeit为2函数创建基准。

我循环了100次。

nb**3 = ~28.166s

nb*nb*nb = ~10.529s

(在Windows上使用Python 3.5)

我不明白为什么python(power operator)创建的运算符比其他运行符花费更多时间。 power运算符由Python定义,我们不需要添加像math.pow这样的新函数。

def power_test():
    nb = 2;
    for i in range(100):
        b = nb**3

def repeat_test():
    nb = 2;
    for i in range(100):
        b = nb*nb*nb;


if __name__ == '__main__':
    import timeit
    print("start bench1");
    print(timeit.timeit("power_test()", setup="from __main__ import power_test"))
    print("end bench1\n");
    print("start Bench2");
    print(timeit.timeit("repeat_test()", setup="from __main__ import repeat_test"));
    print("end bench2\n");

完整结果:

start bench1
28.166055432365265
end bench1

start Bench2
10.52991797905926
end bench2

谢谢

0 个答案:

没有答案