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