2015-08-17 15 views
8

Ich kann nicht die Ausgabe von Pythons timeit.timeit() - Funktion interpretieren. Mein Code ist wie folgt:In welcher Zeiteinheit wird die Zeit zurückgegeben?

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)) 

Die Ausgabe von diesem ist 11.85382745500101. Wie interpretiere ich diese Nummer?

Antwort

19

Der Rückgabewert ist Sekunden als Float.

Es ist die Gesamtzeit den Test (nicht mitgerechnet die Setup), so dass die durchschnittliche Zeit pro Test auszuführen ist diese Zahl durch das Argument number unterteilt, die standardmäßig auf 1 Million.

Siehe Time.timeit() documentation:

Zeit Anzahl Ausführungen der Hauptaussage. Dies führt die Setup-Anweisung einmal aus und dann gibt die Zeit zurück, die benötigt wird, um die Hauptanweisung mehrmals auszuführen, gemessen in Sekunden als Float. Das Argument ist die Anzahl der Male durch die Schleife, standardmäßig auf eine Million.

+0

Sekunden von was? Die schnellste Iteration? –

+1

Ah ... also teile ich die Zahl durch 1 Million, um die durchschnittliche Zeit einer Ausführung zu erhalten? –

+3

@nivixzixer: genau. –