当我在 timeit() 之外运行下面的代码时,它似乎立即完成。但是,当我在 timeit() 函数中运行它时,它需要更长的时间。为什么?
>>> import timeit
>>> t = timeit.Timer("3**4**5")
>>> t.timeit()
16.55522028637718
使用:Python 3.1 (x86) - AMD Athlon 64 X2 - WinXP(32 位)
该timeit()
函数多次运行代码(默认为 100 万次)并取平均时间。
要仅运行一次代码,请执行以下操作:
t.timeit(1)
但这会给你带来偏差的结果——它会重复是有充分理由的。
要获得让它重复的每循环时间,请将结果除以循环数。如果一百万太多,则使用较小的值作为重复次数:
count = 1000
print t.timeit(count) / count
因为 timeit 默认运行一百万次。关键是要做微基准测试,获得短事件准确计时的唯一方法是重复多次。
Timeit默认运行一百万次循环。
您还可能有操作顺序问题:(3**4)**5 != 3**4**5
.