wtorek, 16 września 2014

Python: pomiar czasu wykonania kodu

Jeśli ktoś zwrócił uwagę, to pewnego rodzaju tradycją jest opisywanie sposobu pomiaru czasu w różnych językach programowania na tym blogu. Zwykle wynika to ze sposobu w jaki uczę się jakiegoś języka programowania, czyli eksperymentuję z nim. Przynajmniej raz było to związane z moim udziałem w Potyczkach Algorytmicznych. Tym razem przyszła pora na język Python, który ostatnio dostarcza mi wiele frajdy.

Pierwszy z pomocą przychodzi moduł timeit. Dzięki odpowiedniemu uruchomieniu interpretera możemy już z poziomu linii komend zbadać interesujący nasz moduł:
$ python3 -m timeit -s 'import TestedModule' 'TestedModule.TestedFunction()'
Najważniejsza tutaj jest opcja -m, która pozwala na załadowanie wskazanego przez nazwę modułu i uruchomienie go jako __main__,

Przykładowy wynik:
1000000 loops, best of 3: 0.254 usec per loop
Jeśli jednak jesteśmy zainteresowani zbadaniem tylko  konkretnego fragmentu kodu w naszym kodzie, z pomocą przychodzi nam moduł time i jego funkcja clock();
import random
import time

if __name__ == "__main__":
  start = time.clock()
  int = random.randint(0, 100)
  end = time.clock()
  total = end - start
  print("{0:02f}s".format(total))
Funkcja clock pozwala na pozyskanie czasu z procesora, co oznacza dostatecznie dużą dokładność przy sprawdzeniach.

Brak komentarzy:

Prześlij komentarz