timeit.timeit VS timeit.Timer.repeat - 最佳实践是什么?

F. *_*let 6 repeat timeit python-3.x

我想优化一个函数“ myfunc() ”。我有几种写法,我想检查一下最快的代码。为此,我们可以使用“ timeit ”模块。但是有几种方法可以使用它。最明显,显然也是最常用的,是:

import timeit
timeit.Timer('myfunc()', "from __main__ import myfunc").timeit(100000)
Run Code Online (Sandbox Code Playgroud)

这类似于

timeit.timeit('myfunc()', "from __main__ import myfunc", number=100000)
Run Code Online (Sandbox Code Playgroud)

但是我们也可以使用这样的代码:

min(timeit.Timer('myfunc()', "from __main__ import myfunc").repeat(repeat=100000, number=1))*100000
Run Code Online (Sandbox Code Playgroud)

我期待最后一个是最准确的处理时间,但它似乎不是最常用的代码。

你能帮我确定什么时候使用timeit.timeit更好,什么时候重复更合适吗?

提前致谢

小智 0

timeit.timeit() 更适合测量单个语句或函数的执行时间,而 timeit.repeat() 更适合测量较大代码块的执行时间并提供更稳定的结果。