私はPython 3.5.2を使用しています。私は、ファイルから単語を読み込んでリストにする関数をテストしていました。私は2つのバージョンを作成しました:1つは、appendメソッドともう1つは、連結操作です。その後、私は彼らが取る時間をテストする別の機能を作った。追加速度と連結速度をテストすると一貫性のない結果が発生する
import time
def build1(path):
seq = []
fin = open(path)
for line in fin:
word = line.strip()
seq.append(word)
fin.close()
return seq
def build2(path):
seq = []
fin = open(path)
for line in fin:
word = line.strip()
seq += [word]
fin.close()
return seq
def test(f, p):
start = time.time()
f(p)
stop = time.time()
print('Duration: %fs' %(stop - start))
path = 'C:/Users/neem/Desktop/words.txt'
test(build1, path)
test(build2, path)
私はそれを数回テストしましたが、ここでは私の出力です。
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.171600s
Duration: 0.156000s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.171600s
Duration: 0.202800s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.171600s
Duration: 0.202801s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.171600s
Duration: 0.202800s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.171600s
Duration: 0.187200s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.187200s
Duration: 0.187200s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.187200s
Duration: 0.140400s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.187200s
Duration: 0.187200s
C:\Users\neem\AppData\Local\Programs\Python\Python35-32>python Programs/Test.py
Duration: 0.171600s
Duration: 0.187200s
ほとんどの場合、build1はbuild2よりも高速です。しかし、時にはbuild2はbuild1より速く、時には同じ速度を持つこともあります。なぜこれが起こるのですか?
'Fとして(パス)オープンで:リターンf.readlines()' – jonrsharpe