În primul rând, să vorbim despre capcanele pe care le-am întâlnit, problemele întâlnite în producție, programez execuția scriptului python și monitorizez procesul, timpul de rulare al scriptului python este mult mai mare decât timpul de execuție al programului pe care îl număr în scriptul python. Timpul de monitorizare a execuției scripturilor python este de 36 de ore, în timp ce timpul de auto-execuție în scripturile python este de aproximativ 4 ore. Primul lucru care îmi vine în minte după această problemă este că există o problemă cu Linux și nu am găsit anomalii în diverse jurnale. Apoi mă gândesc la py2neo folosit în python pentru a scrie date asincron, blocând executarea procesului. În cele din urmă, a fost găsită problema: modul în care scriptul python folosește time.clock() pentru a număra timpul de execuție al procesorului, nu timpul de execuție al programului. Apoi, să comparăm câteva statistici de timp în Python:
Metoda 1:
datetime.datetime.now() primește data curentă, iar după ce execuția programului se încheie, valoarea de timp obținută prin această metodă este momentul execuției programului.
Metoda 2:
timp.timp() pentru a obține timpul curent de la epoca (În câteva secunde)。 Dacă ceasul sistemului le oferă, pot exista o fracțiune de secunde. Deci acest loc returnează un tip de virgulă mobilă. Ceea ce se obține aici este și timpul de execuție al programului.
Metoda 3:
time.clock() returnează timpul procesorului de când programul a început sau a fost apelat prima dată. Aceasta are aceeași precizie ca înregistrarea sistemului. Returnarea este, de asemenea, de tip virgulă mobilă. Ceea ce obții aici este timpul de execuție al procesorului. Notă: Timpul de execuție al programului = timp CPU + timp de hibernare + timp de hibernare sau așteptare
Iată cum testez timpul de execuție al funcției folosind metoda 2:
|