Почему timeit python использует "лучшее из 3" для измерения прошедшего времени?

Я не вижу обоснования, почему модуль timeit python измеряет время с помощью best of 3. Вот пример из моей консоли:

~ python -m timeit 'sum(range(10000))'
10000 loops, best of 3: 119 usec per loop

интуитивно я бы собрал все время вместе, а затем разделил его на количество циклов. Какова интуиция подбора лучшего из 3 среди всех циклов? Это кажется немного несправедливым.

1 ответов


Как отметил в документация:

измерения default_timer () могут быть затронуты другими программами, работающими на той же машине, поэтому лучше всего делать, когда необходимо точное время, чтобы повторить время несколько раз и использовать лучшее время. Опция-r хороша для этого; по умолчанию 3 повторения, вероятно, достаточно в большинстве случаев.