Najprej se pogovorimo o pasteh, s katerimi sem se srečal, težavah v produkciji, načrtujem izvajanje python skripte in spremljam proces, čas izvajanja python skripte je bistveno daljši od časa izvajanja programa, ki ga štejem v python skripti. Čas za spremljanje izvajanja python skript je 36 ur, medtem ko je čas samoizvajanja v python skriptah približno 4 ure. Prva stvar, ki mi pride na misel po težavi, je, da obstaja težava z Linuxom, in nisem našel nobenih nepravilnosti v različnih dnevnikih. Potem pomislim na py2neo, ki se uporablja v Pythonu za asinhrono zapisovanje podatkov, kar blokira izvajanje procesa. Nazadnje je bila odkrita težava: način, kako python skripta uporablja time.clock() za štetje časa izvajanja procesorja, ne pa časa izvajanja programa. Nato primerjajmo več statistik časa v Pythonu:
Metoda 1:
datetime.datetime.now() dobi trenutni datum, po koncu izvajanja programa pa je časovna vrednost, pridobljena s to metodo, čas izvajanja programa.
Metoda 2:
time.time() da dobimo trenutni čas od epohe (V nekaj sekundah)。 Če jih sistemska ura omogoča, je lahko le delček sekunde. Torej to mesto vrne tip s plavajočo vejico. Dobimo tudi čas izvajanja programa.
Metoda 3:
time.clock() vrne CPU čas od začetka programa ali prvega klica. To ima enako natančnost kot sistemsko snemanje. Povratna vrednost je prav tako tipa s plavajočo vejico. Tukaj dobite čas izvajanja procesorja. Opomba: Čas izvajanja programa = CPU čas + IO čas + hibernacija ali čas čakanja
Tako testiram čas izvajanja funkcije z metodo 2:
|