Rozumiem koncepcję timeit
ale nie jestem pewna, jak zaimplementować go w moim kodzie.
Jak mogę porównać dwie funkcje, powiedzmy insertion_sort
i tim_sort
, z timeit
?
1 odpowiedź
Sposób działania timeit
polega na jednorazowym uruchomieniu kodu instalacyjnego, a następnie wielokrotnym wywoływaniu szeregu instrukcji. Tak więc, jeśli chcesz przetestować sortowanie, należy zachować ostrożność, aby jedno przejście w sortowaniu w miejscu nie wpłynęło na następne przejście z już posortowanymi danymi.
Oto przykład konfiguracji testu sortowania:
>>> import timeit
>>> setup = '''
import random
random.seed('xyz')
s = [random.random() for i in range(1000)]
timsort = list.sort
'''
>>> print min(timeit.Timer('a=s[:]; timsort(a)', setup=setup).repeat(7, 1000))
0.334147930145
Zauważ, że seria instrukcji tworzy nową kopię nieposortowanych danych przy każdym przejściu.
Zwróć także uwagę na technikę pomiaru czasu, która polega na uruchomieniu pakietu pomiarowego siedem razy i zachowaniu najlepszego czasu - może to naprawdę pomóc w zmniejszeniu zniekształceń pomiaru spowodowanych innymi procesami działającymi w twoim systemie.
Mam nadzieję, że to Ci pomoże! :)