Python Timeit () con esempi

Cos'è Python Timeit ()?

Python timeit () è un metodo nella libreria Python per misurare il tempo di esecuzione impiegato da un dato frammento di codice. La libreria Python esegue l'istruzione del codice 1 milione di volte e fornisce il tempo minimo richiesto dal set di frammenti di codice specificato. Python timeit () è un metodo utile che aiuta a controllare le prestazioni del codice.

Sintassi:

timeit.timeit(stmt, setup,timer, number)

Parametri

  • stmt : questo richiederà il codice per il quale si desidera misurare il tempo di esecuzione. Il valore predefinito è "pass".
  • setup : questo avrà 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 secondo il 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 timeitprint(timeit.timeit('output = 10*5'))

Produzione:

0.06127880399999999

Abbiamo visto un semplice esempio che ci fornisce il tempo di esecuzione della semplice istruzione di codice output = 10 * 5, e il tempo impiegato per eseguirlo è 0,06127880399999999.

Timing Più righe in codice Python

Ce ne sono due che puoi eseguire più righe di codice in timeit.timeit (), usando un punto e virgola o salvando il codice racchiuso come una stringa tra virgolette triple.

Ecco alcuni esempi che ne mostrano il funzionamento.

Esempio 1: utilizzo del punto e virgola

import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Produzione:

The time taken is 0.137031482

Esempio 2: utilizzo di virgolette triple

import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))

Produzione:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - Metodi:

Qui ci sono 2 metodi timeit importanti

timeit.default_timer () : restituirà l'ora predefinita quando viene eseguito.

timeit.repeat (stmt, setup, timer, repeat, number) : uguale a timeit (), ma con repeat viene chiamato timeit () il numero di volte in cui viene data la ripetizione.

Esempio di programma 1:

# testing timeit()import timeitimport_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 timeitimport randomdef 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.220261875The time difference is : 0.0004737320000000045

Esempio 3: timeit.repeat ()

# testing timeit()import timeitimport_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 nell'argomento di ripetizione e restituisce il tempo di esecuzione in formato array con valori come per il numero di ripetizione.

Esecuzione della funzione di temporizzazione timeit.timeit () all'interno dell'interfaccia della riga di comando

La sintassi per eseguire la tua 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 che vuoi che il codice venga eseguito.
  • -r N: il numero di volte che vuoi che la funzione timeit () venga ripetuta
  • -s S: questo avrà i dettagli di configurazione che verranno eseguiti prima dell'esecuzione del codice.
  • -t: per questo, puoi usare time.time ()
  • -c: per questo, puoi usare time.clock ()
  • -h: per aiuto
  • dichiarazione 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 del codice Python?

Ecco alcuni motivi per cui consideriamo timeit () il modo migliore per misurare il tempo di esecuzione.

  • Esegue l'istruzione del codice 1 milione di volte che è il valore predefinito e da questo ti restituirà il tempo minimo impiegato. Puoi anche aumentare / diminuire 1 milione impostando il numero di argomento nella funzione time ().
  • Durante l'esecuzione del test, la garbage collection viene disabilitata ogni volta dalla funzione time ().
  • timeit () prende internamente l'ora esatta in base al sistema operativo in uso. Ad esempio, utilizzerà time.clock () per il sistema operativo Windows e time.time () per mac e Linux.

Sommario

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

Parametri utilizzati con timeit ()

  • stmt: questo richiederà il codice di cui vuoi misurare il tempo di esecuzione
  • setup: questo avrà i dettagli di configurazione che devono essere eseguiti prima di stmt
  • timer: questo avrà il valore del timer, timeit () ha già un valore predefinito impostato e possiamo ignorarlo.
  • numero: lo stmt verrà eseguito secondo il numero fornito qui.

Articoli interessanti...