为什么python';s使用';三选一';测量经过的时间?

为什么python';s使用';三选一';测量经过的时间?,python,benchmarking,microbenchmark,timeit,Python,Benchmarking,Microbenchmark,Timeit,我看不出python的timeit模块使用三选一测量时间的基本原理。以下是我的控制台中的一个示例: ~ python -m timeit 'sum(range(10000))' 10000 loops, best of 3: 119 usec per loop 直觉上,我会把整个时间放在一起,然后除以循环的数量。在所有循环中选择3个最佳循环的直觉是什么?这似乎有点不公平。如中所述: 默认的_timer()测量值可能会受到同一台机器上运行的其他程序的影响,因此在需要精确计时时,最好重复计时几次并

我看不出python的timeit模块使用
三选一测量时间的基本原理。以下是我的控制台中的一个示例:

~ python -m timeit 'sum(range(10000))'
10000 loops, best of 3: 119 usec per loop
直觉上,我会把整个时间放在一起,然后除以循环的数量。在所有循环中选择3个最佳循环的直觉是什么?这似乎有点不公平。

如中所述:

默认的_timer()测量值可能会受到同一台机器上运行的其他程序的影响,因此在需要精确计时时,最好重复计时几次并使用最佳时间。-r选项对此很好;在大多数情况下,默认的3次重复可能就足够了


有一些随机的cpu进程正在进行,这会降低速度。从理论上讲,每次运行所需的时间应该是相同的,因此它会选择最快的运行时间。为什么会出现这种否决票?