Timeit - инструмент для измерения времени выполнения кода
Модуль timeit в Python предоставляет удобный способ измерять время выполнения кода. Этот модуль часто используется для оптимизации программ и сравнения эффективности различных подходов к решению задач.
Использование модуля timeit весьма просто. Перед началом отрезка кода, участка программы, который мы хотим измерить, мы импортируем модуль timeit:
<pre><code class="language-python">import timeit</code></pre>
Далее, мы можем создать объект класса Timer и передать ему строку с кодом, который мы хотим измерить:
<pre><code class="language-python">code_to_measure = '''
a = 0
for i in range(1000):
a += i
'''
timer = timeit.Timer(stmt=code_to_measure)</code></pre>
Здесь мы задали код, который будет измеряться, в виде строки code_to_measure. Этот код представляет собой цикл, который складывает числа от 0 до 999, и сохраняет сумму в переменную a.
После создания объекта Timer, мы можем использовать его методы для измерения времени выполнения кода. Например, метод timeit() возвращает время выполнения в секундах:
<pre><code class="language-python">execution_time = timer.timeit()
print("Время выполнения кода:", execution_time, "секунды")</code></pre>
Также можно указать число повторений, чтобы получить более точные результаты:
<pre><code class="language-python">num_repeats = 1000
execution_time = timer.timeit(number=num_repeats)
print("Среднее время выполнения кода:", execution_time/num_repeats, "секунды")</code></pre>
Вывод программы будет содержать информацию о времени выполнения кода.
Модуль timeit также предоставляет метод repeat(), который позволяет выполнять измерения несколько раз и выводить наиболее точные результаты.
<pre><code class="language-python">times = timer.repeat(repeat=5, number=num_repeats)
average_time = sum(times) / len(times)
print("Среднее время выполнения кода:", average_time, "секунды")</code></pre>
Этот код выполнит измерения кода 5 раз и выведет среднее время выполнения.
Кроме того, модуль timeit позволяет использовать контекстный менеджер для измерения времени:
<pre><code class="language-python">with timeit.Timer() as timer:
# Здесь размещается код, который мы хотим измерить
# Например:
a = 0
for i in range(1000):
a += i
print("Время выполнения кода:", timer.elapsed, "секунды")</code></pre>
Такой подход удобен, потому что не требует явного вызова метода timeit(), и время выполнения кода будет доступно через атрибут elapsed объекта Timer.
Модуль timeit также позволяет измерять время выполнения внутри Jupiter-ноутбука с помощью магической команды %timeit. Пример использования:
<pre><code class="language-python">%%timeit
a = 0
for i in range(1000):
a += i</code></pre>
Этот код будет выполняться несколько раз, и в конце будет выведено среднее время выполнения.
Использование модуля timeit позволяет более точно измерять время выполнения кода и сравнивать эффективность различных подходов или алгоритмов. Это полезный инструмент, который помогает разработчикам создавать более эффективные программы.