Pitone

Modulo timeit Python

Modulo timeit Python

La programmazione non riguarda solo l'esecuzione di un compito e l'ottenimento di un risultato che intendevamo ottenere. Riguarda anche la velocità con cui un programma viene eseguito ed eseguito in modo da ottenere l'output desiderato. Con la maggior parte dei linguaggi di programmazione, non è facile confrontare la velocità con cui è stato eseguito il programma e non è mai facile cronometrare un particolare pezzo di codice per capire quale parte del nostro codice impiega più tempo per l'esecuzione. Questo è il problema che viene risolto da Python tempo modulo.

Modulo timeit Python

Pitone tempo il modulo ci permette di cronometrare il tempo di esecuzione di un pezzo di codice senza tenere conto dei processi in background che vengono eseguiti per rendere eseguibile un codice. Se hai bisogno di misurazioni leggermente accurate delle prestazioni del tuo codice tempo è il modulo per cui andare?.

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 cronometrarla usando il comando mostrato:

$ python --version
$ python -m timeit '"&".join(str(n) for n in range(1000))'
$ python -m timeit '"&".join([str(n) for n in range(1000)])'
$ python -m timeit '"&".join(map(str, range(1000)))'

Ecco cosa otteniamo indietro con questo comando:

Tempo di esecuzione dalla CLI utilizzando timeit

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

Cronometrare un pezzo di codice

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

importa ora
# il codice di installazione viene eseguito solo una volta
setup_code = "from math import sqrt"
# frammento di codice principale per il controllo delle prestazioni
code_to_measure = "'
def esempio():
mia lista = []
per x nell'intervallo (100):
la mia lista.append(sqrt(x))
'"
# dichiarazione di tempo
print(timeit.timeit(setup = setup_code,
stmt = code_to_measure,
numero = 10000))

Vediamo l'output di questo comando:

Cronometrare un ciclo

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

Misura il tempo per il codice multilinea da CLI

Possiamo anche misurare il tempo per il codice che si estende su più righe nella CLI di 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 otteniamo indietro con questo comando:

Temporizzazione codice multilinea su CLI

Generalmente confrontando due blocchi di codice

Se non vuoi avere il fastidio di usare la CLI e vuoi solo confrontare due programmi Python in modo da sapere quale funziona più velocemente, c'è un modo abbastanza semplice per ottenere questo:

importa ora
inizio = tempo.default_timer()
funzione()
print(timeit.default_timer() - inizio)
inizio = tempo.default_timer()
funzioneDue()
print(timeit.default_timer() - inizio)

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

Conclusione

In questa lezione, abbiamo studiato come possiamo cronometrare il nostro codice in Python e vedere la loro complessità ed efficienza nel tempo e lavorarci sopra se il codice è troppo lento.

Come modificare il puntatore del mouse e le dimensioni, il colore e lo schema del cursore su Windows 10
Il puntatore del mouse e il cursore in Windows 10 sono aspetti molto importanti del sistema operativo. Questo si può dire anche per altri sistemi oper...
Motori di gioco gratuiti e open source per lo sviluppo di giochi Linux
Questo articolo tratterà un elenco di motori di gioco gratuiti e open source che possono essere utilizzati per lo sviluppo di giochi 2D e 3D su Linux....
Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...