Python Timeit() con esempi

Che cos'è la 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)

parametri

  • stmt: Questo prenderà il codice per il quale vuoi misurare il tempo di esecuzione. Il valore predefinito è "superato".
  • flessibile.: 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()

Esempio di codice 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.

Sommario

Timeit() viene utilizzato per ottenere il tempo di esecuzione impiegato per il piccolo codice fornito

Parametri utilizzati con timeit()

  • stmt: prenderà il codice di cui desideri misurare il tempo di esecuzione
  • setup: questo conterrà i dettagli di installazione che devono essere eseguiti prima di stmt
  • timer: 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.