10.10.1 Interfaccia a riga di comando

Quando si invoca questo modulo dalla riga di comando, usate la seguente forma:

python timeit.py [-n N] [-r N] [-s S] [-t] [-c] [-h] [statement ...]

dove le varie opzioni hanno i seguenti significati:

-n N/--number=N
quante volte eseguire l'istruzione 'statement'
-r N/--repeat=N
quante volte ripetere timeit() (predefinito 3)
-s S/--setup=S
l'istruzione da eseguire all'inizio una sola volta (il predefinito è 'pass')
-t/--time
usa time.time() (predefinito su tutte le piattaforme tranne Windows)
-c/--clock
usa time.clock() (predefinito su Windows)
-v/--verbose
stampa ulteriori risultati dell'analisi; ripetetela per maggiore precisione
-h/--help
stampa un breve messaggio di aiuto e termina

Si può passare un'istruzione multiriga fornendo ogni riga come argomento separato; l'indentazione delle righe può venire ricreata racchiudendo un argomento fra virgolette ed utilizzando opportunamente gli spazi. Opzioni -s multiple vengono trattate in modo simile.

Se l'opzione -n non viene fornita, viene calcolato un numero ragionevole di cicli provando per successive potenze di dieci finché il tempo totale non è minore di 0.2 secondi.

La funzione timer predefinita dipende dalla piattaforma. Su Windows, time.clock() ha la precisione dei microsecondi ma time.time() solo di un sessantesimo di secondo; su Unix, time.clock() ha la precisione di un centesimo di secondo, mentre time.time() è molto più precisa. Su altre piattaforme, la funzione timer predefinita misura il tempo del clock, non il tempo della CPU. Questo significa che altri processi in esecuzione sulla stessa macchina potrebbero interferire con il calcolo del tempo. La cosa migliore da fare quando è necessaria una grande accuratezza è fare il calcolo più volte. Questo si può fare attraverso l'opzione -r; il valore predefinito 3 dovrebbe essere più che sufficiente nella maggior parte dei casi. Su Unix, si può usare time.clock() per misurare il tempo della CPU.

Note: Esiste un certo rallentamento di base associato all'esecuzione dell'istruzione pass. Il codice presentato non cerca di nasconderlo, ma è bene che si sappia. Questo rallentamento di base può venire misurato invocando il programma senza argomenti.

Il rallentamento di base differisce a seconda della versione di Python! Inoltre, per poter comparare correttamente i risultati di vecchie versioni di Python con la 2.3, si dovrebbe utilizzare l'opzione -O per le vecchie versioni dell'interprete in modo da evitare il calcolo del tempo delle istruzioni SET_LINENO.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.