2012-09-16 20 views
12

Fondamentalmente, voglio essere in grado di emettere il tempo trascorso per cui l'applicazione è in esecuzione. Penso di aver bisogno di usare una sorta di funzione timeit ma non sono sicuro di quale. Sto cercando qualcosa di simile al seguente ...Quanto tempo impiega la mia applicazione Python per funzionare?

START MY TIMER 
code for application 
more code 
more code 
etc 
STOP MY TIMER 

USCITA tempo trascorso a fare il codice di cui sopra in tra l'inizio e l'arresto del timer. Pensieri?

risposta

0

Non è possibile ottenere l'ora del sistema corrente all'inizio e alla fine, quindi sottrarre l'ora di inizio dall'ultima volta?

18

Il modo più semplice per farlo è quello di mettere:

import time 
start_time = time.time() 

all'inizio e

print "My program took", time.time() - start_time, "to run" 

alla fine.

+0

Grazie. Ha funzionato perfettamente – user1675111

1

Se stai usando Mac OS X o Linux, basta usare l'utility time:

$ time python script.py 
real 0m0.043s 
user 0m0.027s 
sys  0m0.013s 

In caso contrario, utilizzare il modulo time:

import time 

start_time = time.time() 

# ... 

print time.time() - start_time, 's' 
3

è possibile utilizzare il comando di sistema time :

[email protected]:~# time python test.py 
hello world! 

real 0m0.015s 
user 0m0.008s 
sys  0m0.007s 
+1

Mi piace, ma questo includerà qualsiasi "overhead" per le importazioni e le inizializzazioni che non vorreste testare, nel caso di timing di uno snippet. – Ian

+0

in orario Windows non funziona – George

8

Per ottenere il miglior risultato su diverse piattaforme:

from timeit import default_timer as timer 

# START MY TIMER 
start = timer() 
code for application 
more code 
more code 
etc 
# STOP MY TIMER 
elapsed_time = timer() - start # in seconds 

timer() è un time.perf_counter() in Python 3.3 e time.clock()/time.time() nelle versioni precedenti su Windows/altre piattaforme corrispondentemente.

Problemi correlati