2

最近、timeit モジュールを使用して、Python の非常に簡単なパフォーマンス テストを行いました。x=x+x結果は本当に私を驚かせました誰かがこれについて何か手掛かりを教えてくれることを本当に願っています。ありがとう!x+xy=x+x,

y=x+x;x=yは …と同じくらい遅いx=x+xですが、x=x+47は と同じくらい速いことに注意してくださいx+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秒

私が使用したコード:

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()        
4

1 に答える 1

11

x=x+x何千回も計算するxと、非常に大きくなります。2 つの非常に大きな数を加算するのにかかる時間を測定しています。

于 2012-06-30T06:34:20.670 に答える