Перш за все, давайте поговоримо про підводні камені, з якими я зіткнувся, проблеми у продакшені, я планую виконання 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:
|