私はすぐに ipython で 2 つの関数の時間を計ろうとしm1()
、 m2()
2 つの異なる実装で同じタスクを実行しました。
In [23]: %timeit for x in range(100): m1(a)
10000 loops, best of 3: 57.6 us per loop
In [24]: %timeit for x in range(100): m2(a)
10000 loops, best of 3: 108 us per loop
結果: 最初の実装はほぼ 2 倍高速です。ここまでは順調ですね。
好奇心から、for
上記のループの範囲を変更しましたが、出力の意味がわかりません。
In [25]: %timeit for x in range(1): m2(a)
1000000 loops, best of 3: 1.29 us per loop
In [26]: %timeit for x in range(10): m2(a)
100000 loops, best of 3: 10.8 us per loop
In [27]: %timeit for x in range(1000): m2(a)
1000 loops, best of 3: 1.06 ms per loop
ここで for ループは正確に何をしているのでしょうか? また、範囲の値を大きくするとループ回数の値が減少するのはなぜですか?
PS:これを参考にしていました。また、私の質問を正確に伝えていない場合は、タイトルをより適切なものに編集してください。