首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巨蟒x=x+x比y=x+x慢120倍?!为什么?

巨蟒x=x+x比y=x+x慢120倍?!为什么?
EN

Stack Overflow用户
提问于 2012-06-30 06:20:37
回答 1查看 346关注 0票数 2

最近,我使用timeit模块对python进行了非常简单的性能测试。结果让我大吃一惊:x=x+x消耗的时间大约是的125倍, of x+x还是y=x+x,?为什么?!我真的希望有人能给我一些提示,也许我用错了时间?谢谢!

请注意,y=x+x;x=yx=x+x…一样慢但是x=x+47x+x一样快

testBasicOps() Testcase=“通行证”,时间间隔:0.001487秒 testcase="x=47",时差:0.002424秒 testcase="x=94",时差:0.002423秒 testcase="x=47*2",时差:0.002423秒 testcase="x+x",时差:0.003922秒 testcase="x*2",时差:0.005307秒 testcase="x=x+x",时差:0.497974秒 testcase="x=x*2",时差:0.727506秒 testcase="x=x+47",时差:0.005770秒 testcase="x=47+x",时间差:0.004442秒 testcase="x+=x",时差:0.498920秒 testcase="y=x+x",时差:0.004102秒 testcase="y=x*2",时差:0.006327秒 testcase="y=x+x x=y",时差:0.499644秒 testcase="x+x y=x",时间间隔:0.004948秒 testcase="x+x x=y",时间间隔:0.005126秒 testcase="y=10 x=y",时间间隔:0.003351秒 Testcase=“通行证”,时间间隔:0.001487秒

我使用的代码:

代码语言:javascript
复制
import timeit
import numpy as npy
def testBasicOps():
    timeitSetup="""
x=47
y=0
"""
    testCases=['pass','x=47',\
               'x=94','x=47*2'\
               ,'x+x','x*2'\
               ,'x=x+x','x=x*2'\
               ,'x=x+47','x=47+x'\
               ,'x+=x','y=x+x'\
               ,'y=x*2','y=x+x\nx=y'\
               ,'x+x\ny=x','x+x\nx=y'\
               ,'y=10\nx=y']
    minT=[]
    tests=[]
    for i in testCases:
        tests.append(timeit.Timer(i,setup=timeitSetup))
        minT.append(npy.mean(tests[-1].repeat(10,int(1e5))))
        print 'testcase=\"%s\", time lapse:%fsecs'%(i,minT[-1])

def main():
    print "#"*10
    print "testBasicOps()"
    testBasicOps()

if __name__ == '__main__':
    main()        
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-30 06:34:20

当您计算x=x+x数千次时,x就会变得非常大。你在测量加法两个非常大的数字所需的时间。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11271965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档