4

通訳から、私は得る:

>>> timeit.repeat("-".join( str(n) for n in range(10000) ) , repeat = 3, number=10000)
[1.2294530868530273, 1.2298660278320312, 1.2300069332122803] # this is seconds 

コマンドラインから、私は得る:

$ python -m timeit -n 10000 '"-".join(str(n) for n in range(10000))'
10000 loops, best of 3: 1.79 msec per loop # this is milli second 

2 つのケースでタイミングの大きさにこの違いがあるのはなぜですか?

4

1 に答える 1

8

2 つの線は同じものを測定していません。最初のスニペットでは、計算のタイミングを計っています0-1-2-...-9999。2 番目のスニペットでは、文字列連結のタイミングを計っています"-".join(str(n) for n in range(10000))

さらに、合計timeit時間をrepeat報告しますが、CLI は反復回数にわたって時間を平均します。したがって、最初のコードは実際には「ループごと」に 12.29 ミリ秒かかります。

于 2013-10-16T20:40:39.350 に答える