Me enfrento a una situación extraña que no puedo explicar. Aquí está mi prueba de tiempo la generación de una gran lista de tuplas:Inconsistencia entre% time y% timeit en IPython
In [1]: def get_list_of_tuples():
...: return [(i,) for i in range(10**6)]
...:
In [2]: %time res = get_list_of_tuples()
CPU times: user 0.93 s, sys: 0.08 s, total: 1.01 s
Wall time: 0.98 s
In [3]: %timeit res = get_list_of_tuples()
1 loops, best of 3: 92.1 ms per loop
Como se puede ver, la generación de esta larga lista de tuplas toma justo debajo de un segundo. timeit informa que el tiempo de ejecución es de alrededor de 0.1 segundo. ¿Por qué hay una gran diferencia en los dos informes?
(Probado en IPython 0,11, Python 2.6.5.)
se obtiene el mismo resultado si se ejecuta % timeit primero y% time second? – sth
Interesante comentario. Sí, obtengo resultados similares con un orden de ejecución invertido. – badzil
No conozco IronPython, así que no puedo decir mucho sobre '% time' o'% timeit', pero supongo que '% time' repite la prueba de tiempo 10 veces. –