Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: time, monotonic

Какие функции работы со временем существуют в Python и чем отличаются time(), monotonic() и perf_counter()?

Вопрос проверяет понимание разных типов часов и их назначения.

Короткий ответ

time() возвращает текущее системное время и может изменяться при корректировке часов. monotonic() возвращает монотонное время, которое никогда не уменьшается, и используется для измерения интервалов. perf_counter() также монотонный, но имеет более высокую точность и используется для бенчмарков. Для измерений времени выполнения обычно применяют perf_counter().

Длинный ответ

В Python существует несколько типов часов, каждый из которых решает разные задачи.

time.time()

Возвращает:

  • текущее время UNIX

  • зависит от системных часов

Пример:

import time
print(time.time())

Недостаток:

  • может "прыгать" при синхронизации NTP

time.monotonic()

Определение
Монотонные часы — это часы, которые никогда не идут назад.

Особенности:

  • не зависит от системного времени

  • подходит для таймаутов

Пример:

start = time.monotonic()
# операция
elapsed = time.monotonic() - start

time.perf_counter()

Особенности:

  • максимальная точность

  • монотонный

  • учитывает время сна и переключений

Используется:

  • измерение производительности

  • бенчмарки

Пример:

start = time.perf_counter()
# измеряемый код
elapsed = time.perf_counter() - start

Когда использовать

Практическое правило:

  • логирование времени — time()

  • таймауты — monotonic()

  • измерение скорости — perf_counter()

Вывод

Разные функции времени предназначены для разных задач. Для измерения интервалов следует использовать монотонные часы, а для бенчмарков — perf_counter().

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Python

    Python

Ключевые слова

#time

#monotonic

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.