Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 16030|Odpowiedź: 0

[Napiwki] Kilka metod obliczania czasu wykonania w Pythonie

[Skopiuj link]
Opublikowano 23.04.2018 15:54:36 | | | |
Przede wszystkim porozmawiajmy o pułapkach, na które napotykałem, problemach napotykanych w produkcji, planuję wykonanie skryptu pythona i monitoruję proces, czas działania skryptu pythona jest znacznie dłuższy niż czas wykonywania programu, który liczę w skrypcie pythona.
Czas monitorowania wykonania skryptów pythona wynosi 36 godzin, natomiast czas samowykonania w skryptach pythona to około 4 godzin.
Pierwszą rzeczą, która przychodzi mi do głowy po problemie, jest problem z Linuksem i nie znalazłem żadnych nieprawidłowości w różnych logach.
Potem myślę o py2neo używanym w Pythonie do asynchronicznego zapisu danych, blokując wykonanie procesu.
Ostatecznie odkryto problem: sposób, w jaki skrypt pythona wykorzystuje time.clock() do liczenia czasu wykonania CPU, a nie czasu wykonania programu.
Następnie porównajmy kilka statystyk czasu w Pythonie:

Metoda 1:

datetime.datetime.now() otrzymuje aktualną datę, a po zakończeniu wykonania programu wartość czasu uzyskaną przez tę metodę to czas wykonania programu.

Metoda 2:

time.time() aby uzyskać aktualny czas od epoki (W kilka sekund)。 Jeśli zegar systemowy je zapewnia, może być ułamek sekundy. To miejsce zwraca typ zmiennoprzecinkowy. Otrzymujemy tutaj także czas wykonania programu.

Metoda 3:

time.clock() zwraca czas CPU od momentu rozpoczęcia lub pierwszego wywołania programu. To jest tak samo precyzyjne jak nagrywanie systemowe. Zwrot jest również typu zmiennoprzecinkowego. Otrzymujesz tutaj czas wykonania CPU.
Uwaga: Czas wykonania programu = czas CPU + czas IO + czas hibernacji lub oczekiwania

Oto jak testuję czas wykonania funkcji metodą 2:







Poprzedni:Tutorial instalacyjny python 3.6.5 w Windows
Następny:Ewolucja architektury sieci neuronowych: kompleksowy przegląd ponad dziesięciu architektur od LeNet5 do ENet
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com