Zwykle korzystam z biblioteki clock()
lub korzystam time()
z niej time
. clock
mierzy czas tłumacza, podczas gdy time
mierzy czas systemowy. Dodatkowe zastrzeżenia można znaleźć w dokumentacji .
Na przykład,
def fn():
st = time()
dostuff()
print 'fn took %.2f seconds' % (time() - st)
Lub alternatywnie możesz użyć timeit
. Często używam tego time
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 ,
def test():
"Stupid test function"
L = []
for i in range(100):
L.append(i)
if __name__=='__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.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
i str
to:
runtime = time() - st
print 'runtime:', timedelta(seconds=runtime)
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 .