Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 16030|Svar: 0

[Tips] Flera metoder för beräkning av exekveringstid i Python

[Kopiera länk]
Publicerad på 2018-04-23 15:54:36 | | | |
Först och främst, låt oss prata om fallgroparna jag stötte på, problemen jag stötte på i produktionen, jag schemalägger körningen av python-skriptet och övervakar processen, och python-skriptets körtid är mycket längre än den programexekveringstid jag räknar i python-skriptet.
Tiden för att övervaka exekveringen av pythonskript är 36 timmar, medan självexekveringen i pythonskript är cirka 4 timmar.
Det första jag kommer att tänka på efter problemet är att det finns ett problem med Linux, och jag hittade inga avvikelser i olika loggar.
Sedan tänker jag på py2neo som används i python för att skriva data asynkront, vilket blockerar processens exekvering.
Slutligen upptäcktes problemet: hur python-skriptet använder time.clock() för att räkna CPU:ns exekveringstid, inte programmets exekveringstid.
Nästa steg är att jämföra flera Python-tidsstatistik:

Metod 1:

datetime.datetime.now() får det aktuella datumet, och efter att programexekveringen är slut är tidsvärdet som erhålls med denna metod tiden för programexekveringen.

Metod 2:

time.time() för att få den aktuella tiden sedan epoken (På några sekunder)。 Om systemklockan tillhandahåller dem kan det vara en bråkdel av en sekund. Så denna plats returnerar en flyttalstyp. Det som erhålls här är också programmets exekveringstid.

Metod 3:

time.clock() returnerar CPU-tiden sedan programmet startade eller först anropades. Detta har lika mycket precision som systeminspelning. Avkastningen är också av flyttalstyp. Det du får här är CPU:ns exekveringstid.
Notera: Programexekveringstid = CPU-tid + io-tid + viloläge eller väntetid

Så här testar jag exekveringstiden för funktionen med metod 2:







Föregående:python 3.6.5 installationshandledning under Windows
Nästa:Utvecklingen av neural nätverksarkitektur: En omfattande översikt av mer än tio arkitekturer från LeNet5 till ENet
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com