python: timeit() 函数慢
当我在不使用timeit()的情况下运行下面的代码时,它似乎瞬间就完成了。但是当我在timeit()函数里面运行时,花的时间就长得多。为什么会这样呢?
>>> import timeit
>>> t = timeit.Timer("3**4**5")
>>> t.timeit()
16.55522028637718
使用的环境是:
Python 3.1 (x86) -
AMD Athlon 64 X2 -
WinXP (32位)
4 个回答
4
6
因为timeit默认会运行一百万次。这样做的目的是为了进行微型基准测试,而要准确测量短时间的事件,唯一的方法就是多次重复它们。
33
timeit()
函数会把你的代码运行很多次(默认是一百万次),然后计算这些运行时间的平均值。
如果你只想运行一次代码,可以这样做:
t.timeit(1)
不过这样得到的结果可能不太准确,因为它重复运行是有原因的。
如果你想知道每次循环的时间,可以把结果除以循环的次数。如果一百万次太多了,可以用一个更小的重复次数:
count = 1000
print t.timeit(count) / count