Mam do czynienia z dziwną sytuacją, której nie potrafię wyjaśnić. Oto moja próba rozrządu generowanie dużej listę krotek:Niespójność między% time i% timeit w 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
Jak widać, pokolenie to dużą listę krotek trwa zaledwie poniżej sekundy. timeit informuje, że czas wykonania wynosi około 0,1 sekundy. Dlaczego w obu raportach występuje tak duża różnica?
(Testowane na ipython 0,11, Python 2.6.5.)
Czy można uzyskać ten sam rezultat, jeśli uruchomić % timeit pierwszy a% czas drugi? – sth
Interesujący komentarz. Tak, otrzymuję podobne wyniki w odwrotnej kolejności wykonania. – badzil
Nie znam IronPythona, więc nie mogę powiedzieć wiele o '% time' lub'% timeit', ale domyślam się, że '% time' powtórzy test czasowy 10 razy. –