从口译员那里得到:
>>> 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
为什么这两种情况的时间差异会有所不同?
答案 0 :(得分:8)
这两条线的测量方法并不相同。在第一个代码段中,您计算了计算0-1-2-...-9999
。在第二个片段中,您将对字符串连接"-".join(str(n) for n in range(10000))
进行计时。
此外,timeit
和repeat
报告总时间,而CLI平均时间超过迭代次数。所以第一个代码实际上需要12.29毫秒“每个循环”。