Найти в Дзене
От Джуна до Лида (IT Jobs)

Ты не правильно замеряешь время в Python!

Все, кто программирует на Python знают функцию time.time() и замеряют время с ее помощью. Сегодня мы убедимся, что это не правильно. Начнем с простого примера: Ожидаемо, что скрипт выводит 10 секунд. При этом время, установленное на компьютере: Теперь запускаем скрипт и переведем время на несколько часов вперед: В итоге получаем 18000 секунд, хотя прошло всего 10: Возникает вопрос как бороться с возникшей на пустом месте проблемой? Решается она довольно просто. Используем вместо time.time() time.monotonic(). Также меняем время на несколько часов вперед, но скрипт выдает нужное нам число - 10 секунд: Замер времени через time.monotonic() наиболее надежный способ. Эта функция хорошо применима на практике. Конечно, менять время на своем компьютере во время использования программы никто не будет, но время на сервере может измениться из-за ошибки программиста. Например, неправильное указание timezone. Может быть ситуация, когда какой-то процесс сам будет скидывать время. Если ваш проект завя

Все, кто программирует на Python знают функцию time.time() и замеряют время с ее помощью. Сегодня мы убедимся, что это не правильно.

Начнем с простого примера:

Ожидаемо, что скрипт выводит 10 секунд. При этом время, установленное на компьютере:

-2

Теперь запускаем скрипт и переведем время на несколько часов вперед:

-3

В итоге получаем 18000 секунд, хотя прошло всего 10:

-4

Возникает вопрос как бороться с возникшей на пустом месте проблемой?

Решается она довольно просто. Используем вместо time.time() time.monotonic(). Также меняем время на несколько часов вперед, но скрипт выдает нужное нам число - 10 секунд:

-5

Замер времени через time.monotonic() наиболее надежный способ. Эта функция хорошо применима на практике. Конечно, менять время на своем компьютере во время использования программы никто не будет, но время на сервере может измениться из-за ошибки программиста. Например, неправильное указание timezone. Может быть ситуация, когда какой-то процесс сам будет скидывать время. Если ваш проект завязан на измерении времени, то лучше использовать time.monotonic(). Так надежнее.

Подписывайтесь на наш telegram канал где вы сможете найти актуальные вакансии для Python разработчиков любого уровня

#it #программист #программирование #питон #python