Вопрос проверяет понимание разных типов часов и их назначения.
time() возвращает текущее системное время и может изменяться при корректировке часов. monotonic() возвращает монотонное время, которое никогда не уменьшается, и используется для измерения интервалов. perf_counter() также монотонный, но имеет более высокую точность и используется для бенчмарков. Для измерений времени выполнения обычно применяют perf_counter().
В Python существует несколько типов часов, каждый из которых решает разные задачи.
Возвращает:
текущее время UNIX
зависит от системных часов
Пример:
import time
print(time.time())
Недостаток:
может "прыгать" при синхронизации NTP
Определение
Монотонные часы — это часы, которые никогда не идут назад.
Особенности:
не зависит от системного времени
подходит для таймаутов
Пример:
start = time.monotonic()
# операция
elapsed = time.monotonic() - start
Особенности:
максимальная точность
монотонный
учитывает время сна и переключений
Используется:
измерение производительности
бенчмарки
Пример:
start = time.perf_counter()
# измеряемый код
elapsed = time.perf_counter() - start
Практическое правило:
логирование времени — time()
таймауты — monotonic()
измерение скорости — perf_counter()
Разные функции времени предназначены для разных задач. Для измерения интервалов следует использовать монотонные часы, а для бенчмарков — perf_counter().