Modulo Python timeit

Modulo Python timeit

La programmazione non consiste solo nel realizzare un'attività e di ottenere un output che intendevamo ottenere. Riguarda anche la velocità con cui un programma viene eseguito ed esegui in modo da ottenere l'output desiderato. Con la maggior parte dei linguaggi di programmazione, non è facile confrontare la fase di funzionamento del programma e non è mai facile un determinato codice di codice per capire quale parte del nostro codice impiega più tempo per eseguire. Questo è il problema che è risolto dal Python timeit modulo.

Modulo Python timeit

Pitone timeit Il modulo ci consente di tempo il tempo di esecuzione di un pezzo di codice senza tenere conto dei processi di fondo che vengono eseguiti per rendere eseguibile un codice. Se hai bisogno di misurazioni leggermente accurate di come si esegue il codice timeit è il modulo da scegliere.

timeit semplice esempio

Inizieremo utilizzando il modulo timeit direttamente dal prompt dei comandi. Il modulo timeit può essere utilizzato direttamente dalla CLI dove possiamo inserire una semplice istruzione Loop e tempo utilizzando il comando mostrato:

$ Python -Version
$ python -m timeit '"&".join (str (n) per n nell'intervallo (1000)) '
$ python -m timeit '"&".join ([str (n) per n nell'intervallo (1000)]) '
$ python -m timeit '"&".join (mappa (str, intervallo (1000))) '

Ecco cosa torniamo con questo comando:

Tempo di esecuzione dalla CLI usando timeit

In una delle sezioni successive, impareremo come gestire il numero di loop eseguiti per trovare il numero ottimale per l'esecuzione di una determinata espressione.

Tempando un pezzo di codice

Se hai uno script Python di base per cui si desidera misurare il tempo, il modulo timeit è la strada da percorrere:

tempo di importazione
# Il codice di configurazione viene eseguito solo una volta
setup_code = "da math import sqrt"
# Snippet del codice principale per il controllo delle prestazioni
code_to_measure = "'
def esempio ():
mylist = []
per x nell'intervallo (100):
la mia lista.append (sqrt (x))
'"
# Dichiarazione timeit
Stampa (timeit.timeit (setup = setup_code,
stmt = code_to_measure,
numero = 10000))

Vediamo l'output per questo comando:

Tempismo di un ciclo

In questo codice, abbiamo anche visto come possiamo controllare il numero di ripetiti che il modulo timeit si eseguerà per trovare il miglior tempo di esecuzione per il programma.

Misura il tempo per il codice multilinea dalla CLI

Possiamo anche misurare il tempo per il codice che attraversa più righe nella CLI Python. Diamo un'occhiata a un programma di esempio per vedere questo:

$ python -m timeit -s \
> "linuxhint = " \
> "Per n nell'intervallo (1000):" \
> "LinuxHint [STR (N)] = N"

Ecco cosa torniamo con questo comando:

Dimenendo il codice multilinea su CLI

Generalmente confrontando due blocchi di codice

Se non vuoi entrare in una seccatura di usare la CLI e vuoi solo confrontare due programmi Python in modo da sapere quale funziona più velocemente, c'è un modo piuttosto semplice per raggiungere questo obiettivo:

tempo di importazione
start = timeit.default_timer ()
funcone ()
Stampa (timeit.default_timer () - start)
start = timeit.default_timer ()
functwo ()
Stampa (timeit.default_timer () - start)

Usando la funzione default_timer (), iniziamo i tempi ancora e ancora per trovare una differenza per lo stesso quando è stato iniziato l'ultima volta. Questo può essere usato solo quando si dispone di un buon stile modulare di scrittura in modo che ogni Pieve del codice possa essere misurato separatamente.

Conclusione

In questa lezione, abbiamo studiato come possiamo cronometrare il nostro codice in Python e vedere la loro complessità e l'efficienza del tempo e lavorare su di esso se il codice è troppo lento.