2015-08-17 10 views
8

Nie wiem, jak interpretować dane wyjściowe z funkcji timeit.timeit() Pythona. Mój kod wygląda następująco:Jaką jednostkę czasu zwraca timeit?

import timeit 

setup = """ 
import pydash 
list_of_objs = [ 
    {}, 
    {'a': 1, 'b': 2, 0: 0}, 
    {'a': 1, 'c': 1, 'p': lambda x: x} 
] 
""" 
print(timeit.timeit("pydash.filter_(list_of_objs, {'a': 1})", setup=setup)) 

Wyjście z tego jest 11.85382745500101. Jak interpretować ten numer?

Odpowiedz

19

Wartość zwracana to sekund jako wartość zmiennoprzecinkowa.

Jest to całkowity czas podjęte aby uruchomić test (nie licząc Setup), więc średni czas na test jest to, że liczba podzielona przez number argumentu, który domyślnie do 1 miliona.

Zobacz Time.timeit() documentation:

Czas liczba egzekucje głównego rachunku. Spowoduje to wykonanie instrukcji setup raz, a następnie zwraca czas potrzebny do wykonania instrukcji głównej kilka razy, mierzony w sekundach jako liczba zmienna. Argumentem jest liczba razy w pętli, domyślnie do miliona.

+0

Sekund czego? Najszybsza iteracja? –

+1

Ah ... więc dzielę liczbę przez 1 milion, aby uzyskać średni czas jednego wykonania? –

+3

@nivixzixer: dokładnie. –

Powiązane problemy