Sto lottando con questo utilizzando timeit e chiedevo se qualcuno avesse qualche consiglioCome usare python timeit quando si passano le variabili alle funzioni?
Fondamentalmente ho una funzione (che mi passa un valore a) che voglio testare la velocità di e ha creato questo:
if __name__=='__main__':
from timeit import Timer
t = Timer(superMegaIntenseFunction(10))
print t.timeit(number=1)
ma quando l'eseguo, ottengo errori strani come proveniente dal modulo timeit .:
ValueError: stmt is neither a string nor callable
Se eseguo la funzione da solo, funziona benissimo. E 'quando lo avvolgo nel tempo in cui è modulo, ottengo gli errori (ho provato ad usare le virgolette doppie e senza..sumero).
qualsiasi suggerimento sarebbe fantastico!
Grazie!
Ha funzionato! Grazie mille. Devo capire che cosa fa la lambda ... sembra che questo abbia fatto la differenza. Grazie Pablo – Lostsoul
se solo questo fosse nella documentazione da qualche parte – endolith
Oh ma lambda aggiunge un po 'di overhead, quindi non è l'ideale per testare piccole cose. 'timeit 5 * 5' è 33 ns mentre' timeit (lambda: 5 * 5)() 'è 233 ns. – endolith