Mam następujący kod w skrypcie Pythona:
def fun():
#Code here
fun()
Chcę wykonać ten skrypt, a także dowiedzieć się, ile czasu zajęło wykonanie w minutach. Jak dowiedzieć się, ile czasu zajęło wykonanie tego skryptu? Przykład byłby naprawdę mile widziany.
python
datetime
execution-time
James
źródło
źródło
Odpowiedzi:
źródło
datetime.now()
działa, jeśli to zrobiszfrom datetime import datetime
, a nie tylkoimport datetime
(właśnie potwierdzono w Pythonie 3.6.4).Czy wykonujesz skrypt z wiersza poleceń w systemie Linux lub UNIX? W takim przypadku możesz po prostu użyć
źródło
time -p ./script.py
-p
flaga dla rurociąguźródło
print('It took {0:0.1f} seconds'.format(time.time() - start))
w pythonie 3.x.Zwykle korzystam z biblioteki
clock()
lub korzystamtime()
z niejtime
.clock
mierzy czas tłumacza, podczas gdytime
mierzy czas systemowy. Dodatkowe zastrzeżenia można znaleźć w dokumentacji .Na przykład,
Lub alternatywnie możesz użyć
timeit
. Często używam tegotime
podejścia ze względu na to, jak szybko mogę to zrobić, ale jeśli mierzysz czas na wyodrębniony fragment kodu,timeit
przydaje się.Od docs timeit ,
Następnie, aby przekonwertować na minuty, możesz po prostu podzielić przez 60. Jeśli chcesz, aby środowisko wykonawcze skryptu miało czytelny format, niezależnie od tego, czy są to sekundy, czy dni, możesz przekonwertować na a
timedelta
istr
to:a to wypisze coś z formularza
[D day[s], ][H]H:MM:SS[.UUUUUU]
. Możesz sprawdzić dokumentację timedelta .I wreszcie, jeśli tym, czego naprawdę szukasz, jest profilowanie kodu, Python udostępnia również bibliotekę profili .
źródło
Poprzedni kod działa dla mnie bez problemu!
źródło
źródło
Użyj modułu timeit. To jest bardzo łatwe. Uruchom plik example.py, aby był aktywny w powłoce Pythona. Teraz powinieneś móc wywołać swoją funkcję w powłoce. Wypróbuj, aby sprawdzić, czy działa
Dobrze, to działa, teraz zaimportuj czas i ustaw licznik czasu
Teraz mamy ustawiony zegar, możemy zobaczyć, ile czasu to zajmie
I gotowe, powie Ci, ile sekund (lub mniej) zajęło wykonanie tej funkcji. Jeśli jest to prosta funkcja, możesz ją zwiększyć do t.timeit (liczba = 1000) (lub dowolną liczbę!), A następnie podzielić odpowiedź przez liczbę, aby uzyskać średnią.
Mam nadzieję, że to pomoże.
źródło
użyj pakietów time i datetime.
jeśli ktoś chce wykonać ten skrypt, a także dowiedzieć się, ile czasu zajęło wykonanie w minutach
Powyższy kod u mnie działa. Mam nadzieję, że to pomoże.
źródło