Zwykle korzystam z biblioteki clock()lub korzystam time()z niej time. clockmierzy czas tłumacza, podczas gdy timemierzy 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 timepodejścia ze względu na to, jak szybko mogę to zrobić, ale jeśli mierzysz czas na wyodrębniony fragment kodu, timeitprzydaje 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 timedeltai strto:
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 .