# Простой способ + Интересный способ
Иногда мы хотим проверить, сколько времени потребуется для работы нашей функции. Если вы новичок в этом, вот как это сделать.
Представляем модуль времени
Модуль time
встроен в Python, а это значит, что нам не нужно устанавливать ничего дополнительно. Мы можем просто импортировать его.
from time import time
Функция «время»
Это не модуль time
. Это функция time
. Что может немного сбить с толку новичков. Но только помните, что если вы используете from time import time
, всё будет ок.
from time import time my_time = time() print(my_time) # 1694443974.14924
Когда мы вызываем функцию time
, она возвращает нам большое число. Это большое число представляет собой временную метку unix, то есть количество секунд, прошедших с 1 января 1970 года в 00:00:00 ETC.
Тайминг с функцией «время»
def dostuff(): x = 0 for i in range(100000): x += i return x from time import time start_time = time() dostuff() end_time = time() print('time taken:', end_time-start_time, 'seconds') # time taken: 0.004242897033691406 seconds
- сначала мы находим временную метку
start_time
- мы запускаем нашу функцию
dostuff
- затем мы находим временную метку
end_time
end_time-start_time
– это количество секунд, в течение которыхdostuff
бежал
Сделать это повторяемым для нескольких функций
Но что, если у нас есть много функций, для которых мы хотим это сделать? Нужно ли нам писать это несколько раз?
Нет, мы можем написать простую функцию-декоратор, которая поможет нам!
from time import time def timethis(my_function): def wrapper(*args, **kwargs): start_time = time() my_function(*args, **kwargs) end_time = time() print(f'time taken for {my_function.__name__}:', end_time-start_time, 'seconds') return wrapper @timethis def test1(): for i in range(100000): x = 1 @timethis def test2(): for i in…