Прежде всего, давайте поговорим о подводных камнях, с которыми я столкнулся, проблемах в продакшене, я планирую выполнение python-скрипта и контролирую процесс, время выполнения python-скрипта значительно превышает время выполнения программы, которое я считаю в python-скрипте. Время мониторинга выполнения скриптов на Python составляет 36 часов, а время самовыполнения в скриптах на Python — около 4 часов. Первое, что приходит на ум после проблемы — это проблема с Linux, и я не обнаружил никаких отклонений в различных логах. Потом я вспоминаю py2neo, используемый в Python для асинхронного записи данных, блокируя выполнение процесса. Наконец, была обнаружена проблема: способ, которым скрипт на Python использует time.clock() для подсчёта времени выполнения процессора, а не времени выполнения программы. Далее сравним несколько статистических данных по времени на Python:
Метод 1:
datetime.datetime.now() получает текущую дату, а после завершения выполнения программы временное значение, полученное этим методом, становится временем выполнения программы.
Метод 2:
time.time(), чтобы получить текущее время с эпохи (За секунды)。 Если системные часы их предоставляют, может быть доля секунды. Так что это место возвращает тип с плавающей запятой. Здесь также получается время выполнения программы.
Метод 3:
time.clock() возвращает время процессора с момента запуска или первого вызова программы. Это обладает такой же точностью, как и системная запись. Возврат также относится к типу с плавающей запятой. Здесь вы получаете время выполнения процессора. Примечание: время выполнения программы = время процессора + время выхода + гибернация или ожидание
Вот как я проверяю время выполнения функции с помощью метода 2:
|