Python Timeit() con esempi
โก Riepilogo intelligente
Python La funzione Timeit() misura il tempo di esecuzione di un piccolo frammento di codice eseguendolo piรน volte e restituendo la durata minima. Supporta i metodi timeit, repeat e default_timer e funziona sia da script che da riga di comando.

Cosa รจ Python ร ora()?
Python tempo() รจ un metodo in Python libreria per misurare il tempo di esecuzione impiegato dal frammento di codice fornito. IL Python La libreria esegue l'istruzione del codice 1 milione di volte e fornisce il tempo minimo preso dal set specificato di frammenti di codice. Python timeit() รจ un metodo utile che aiuta a verificare le prestazioni del codice.
Sintassi
timeit.timeit(stmt, setup,timer, number)
Scheda Sintetica
- stmt: Questo prenderร il codice per il quale vuoi misurare il tempo di esecuzione. Il valore predefinito รจ "superato".
- setup: Questo conterrร i dettagli di configurazione che devono essere eseguiti prima di stmt. Il valore predefinito รจ "pass".
- timer: Questo avrร il valore del timer, timeit() ha giร un valore predefinito impostato e possiamo ignorarlo.
- numero: Lo stmt verrร eseguito in base al numero fornito qui. Il valore predefinito รจ 1000000.
Per lavorare con timeit(), dobbiamo importare il modulo, come mostrato di seguito:
import timeit
Primo esempio
Ecco un semplice esempio della funzione timeit()
Code esempio 1
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
Produzione:
0.06127880399999999
Abbiamo visto un semplice esempio che ci fornisce il tempo di esecuzione dell'output dell'istruzione di codice semplice = 10*5 e il tempo impiegato per eseguirla รจ 0.06127880399999999.
Tempistica Righe multiple nel codice Python
Esistono due modi per eseguire piรน righe di codice in timeit.timeit(): separando le righe con punto e virgola o racchiudendo il codice come stringa tra virgolette triple.
Ecco alcuni esempi che ne mostrano il funzionamento.
Esempio 1: utilizzo del punto e virgola
import timeit print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Produzione:
The time taken is 0.137031482
Esempio 2: utilizzo delle virgolette triple
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
Produzione:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit โ Metodi
Ecco 2 importanti metodi timeit
timeit.default_timer() : Ciรฒ restituirร l'ora predefinita una volta eseguito.
timeit.repeat(stmt, impostazione, timer, ripetizione, numero) : come timeit() , ma con ripetizione timeit() viene chiamato il numero di volte in cui viene fornito ripeti.
Esempio di programma 1
# testing timeit() import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.timeit(stmt=testcode, setup=import_module))
Produzione:
0.46715912400000004
esempio 2
default_timer() Esempio
# testing timeit() import timeit import random def test(): return random.randint(10, 100) starttime = timeit.default_timer() print("The start time is :",starttime) test() print("The time difference is :", timeit.default_timer() - starttime)
Produzione:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
Esempio 3: timeit.repeat()
# testing timeit() import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))
Produzione:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat() funziona in modo simile alla funzione timeit.timeit(), con l'unica differenza che prende l'argomento ripetizione e restituisce il tempo di esecuzione in formato array con valori secondo il numero di ripetizione.
Esecuzione della funzione di temporizzazione timeit.timeit() all'interno dell'interfaccia della riga di comando
La sintassi per eseguire la funzione all'interno di timeit() sulla riga di comando รจ la seguente:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
Parametri della riga di comando:
- -n N: il numero di volte in cui vuoi che il codice venga eseguito.
- -r N: il numero di volte che vuoi che la funzione timeit() si ripeta
- -s S: conterrร i dettagli di configurazione che verranno eseguiti prima dell'esecuzione del codice.
- -t: per questo puoi usare time.time()
- -c: per questo puoi utilizzare time.clock()
- -h: per aiuto
- istruzione del codice: i dettagli del codice.
Esempio
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
Un altro modo in cui puoi eseguire all'interno della riga di comando รจ come mostrato di seguito:
Esempio
>>> import timeit >>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b')) The time taken is 0.15048536300000137 >>>
Perchรฉ timeit() รจ il modo migliore per misurare il tempo di esecuzione di Python codice?
Ecco alcuni motivi per cui riteniamo che timeit() sia il modo migliore per misurare il tempo di esecuzione.
- Esegue l'istruzione del codice 1 milione di volte che รจ il valore predefinito e da ciรฒ restituirร il tempo minimo impiegato. Puoi anche aumentare/diminuire 1 milione impostando il numero dell'argomento nella funzione time ().
- Durante l'esecuzione del test, la garbage collection viene disabilitata ogni volta tramite la funzione time().
- timeit() richiede internamente l'ora esatta in base al sistema operativo utilizzato. Ad esempio, utilizzerร time.clock() per Windows sistema operativo e time.time() per Mac e Linux.
