2015-12-28 5 views
6

私はなぜpythonのtimeitモジュールがbest of 3を使って時間を測定するのかの根拠は分かりません。ここに私のコンソールからの例です:なぜPythonのtimeitは 'best of 3'を使って経過時間を測定しますか?

~ python -m timeit 'sum(range(10000))' 
10000 loops, best of 3: 119 usec per loop 

は直感的に、私はその後、ループの数で割り一緒に全体の時間をかけているだろう。すべてのループの中でベスト3を選ぶという直感は何ですか?ちょっと不公平だよね。

+2

速度が遅くなるランダムなCPUプロセスがあります。理論的には、それぞれが実行する時間が同じでなければならないため、できるだけ速く選択します。 – Untitled123

+0

なぜこれは下降ですか? – zell

+0

私ではなかった:)... – Untitled123

答えて

5

the documentationで述べたように:正確なタイミングが必要なときに行うための最善のことは、タイミングを数回繰り返すことですので

default_timer()measurationsは、同じマシン上で実行されている他のプログラムによって影響を受けることができます最高の時間を使用してください。 -rオプションはこれに適しています。ほとんどの場合、デフォルトの3回の繰り返しで十分でしょう。

関連する問題