Първо, нека поговорим за капаните, с които се сблъсках – проблемите, които срещнах в продукцията, аз планирам изпълнението на 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:
|