Questo modulo offre un modo semplice per calcolare il tempo impiegato nell'esecuzione di piccole parti di codice Python. Può essere utilizzato da riga di comando o tramite interfacce richiamabili. Aggira un certo numero di trappole comuni nella misurazione del tempo di esecuzione. Vedete anche l'introduzione di Tim Peters al capitolo ``Algoritmi'', nel Python Cookbook, pubblicato dalla O'Reilly.
Il modulo definisce la seguente classe pubblica:
[stmt='pass'
[, setup='pass'
[, timer=<timer function>]]]) |
Il costruttore richiede come primo argomento un'istruzione da misurare,
un'ulteriore istruzione da usare per il setup, ed una
funzione timer. Il valore predefinito per i primi due argomenti è
'pass'
; la funzione timer è dipendente dalla
piattaforma (vedete la stringa di documentazione del modulo). Le
istruzioni possono contenere dei caratteri di fine riga, anche se
magari non contengono caratteri di continuazione riga.
Per misurare il tempo di esecuzione della prima istruzione, usate il metodo timeit(). Il metodo repeat() invece è utile per chiamare più volte il metodo timeit(), restituendo quindi una lista di risultati.
[file=None]) |
Utilizzo tipico:
t = Timer(...) # fuori dal try/except try: t.timeit(...) # oppure t.repeat(...) except: t.print_exc()
Il vantaggio di questa funzione è quello di poter stampare le
informazioni sugli eventuali errori verificatisi. L'argomento
facoltativo file indica dove redirigere la stampa della traceback;
la redirezione predefinita è su sys.stderr
.
[repeat=3 [,
number=1000000 ]]) |
Questa è una funzione di comodità che chiama timeit() ripetutamente, restituendo una lista di tutti i risultati. Il primo argomento specifica quante volte chiamare timeit(). Il secondo specifica l'argomento number da passare a timeit().
[number=1000000 ]) |
timeit.Timer('for i in xrange(10): oct(i)', 'gc.enable()').timeit()