Сообщить об ошибке.

Интерфейс командной строки модуля timeit

Используется следующая форма, когда модуль timeit вызывается как программа из командной строки:

python -m timeit [-n N] [-r N] [-u U] [-s S] [-h] [statement ...]

Где принимаются следующие параметры:

-n N, --number=N:

Сколько раз выполнить выражение statement.

-r N, --repeat=N:

Сколько раз повторить таймер (по умолчанию 5)

-s S, --setup=S:

Выражение настройки кода statement, которое будет выполнено один раз изначально, перед выполнением кода statement.

-p, --process:

Использовать функцию time.process_time() для измерения времени процесса, вместо time.perf_counter(), которая используется по умолчанию.

-u, --unit=U:

Указать единицу времени для вывода таймера. Можно выбрать nsec, usec, msec или sec.

-v, --verbose:

Печатать необработанные временные результаты. Повторить для большей точности цифр.

-h, --help:

Распечатать короткое сообщение об использовании и выйти.

Многострочный оператор может быть задан путем указания каждой строки в качестве отдельного аргумента statement. Строки с отступом возможны, заключив аргумент в кавычки и используя начальные пробелы. Несколько параметров -s обрабатываются аналогично.

Если параметр -n не задан, подходящее количество циклов рассчитывается путем увеличения числа из последовательности 1, 2, 5, 10, 20, 50,… до тех пор, пока общее время не составит не менее 0,2 секунды.

На измерения могут влиять другие программы, работающие на той же машине, поэтому, когда необходима точная синхронизация, лучше всего повторить ее несколько раз и использовать наилучшее время. Для таких измерений используйте параметр -r. По умолчанию выполняется 5 повторений, что достаточно в большинстве случаев. Вы можете использовать функцию time.process_time() для измерения времени процессора.

Примеры:

Использование интерфейса командной строки для сравнения трех различных выражений.

$ python3 -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 5: 30.2 usec per loop
$ python3 -m timeit '"-".join([str(n) for n in range(100)])'
10000 loops, best of 5: 27.5 usec per loop
$ python3 -m timeit '"-".join(map(str, range(100)))'
10000 loops, best of 5: 23.2 usec per loop

Можно предоставить оператор настройки -s, который выполняется только один раз в начале.

$ python -m timeit -s 'text = "sample string"; char = "g"'  'char in text'
5000000 loops, best of 5: 0.0877 usec per loop
$ python -m timeit -s 'text = "sample string"; char = "g"'  'text.find(char)'
1000000 loops, best of 5: 0.342 usec per loop