自升级到IPython版本3(我有3.1.0)以来,每次使用%timeit
命令时,都会打印出“最慢的运行时间比最快的时间长了几倍。这可能意味着在打印定时结果之前,正在缓存中间结果。即使是非常简单的操作也会发生这种例如:
In [4]: x = 5
In [5]: %timeit x
The slowest run took 53.99 times longer than the fastest. This could mean that an intermediate result is being cached
100000000 loops, best of 3: 19.8 ns per loop
和
In [17]: %timeit 22 + 1
The slowest run took 106.15 times longer than the fastest. This could mean that an intermediate result is being cached
100000000 loops, best of 3: 12.2 ns per loop
只有少数几种情况我不能发生,例如:
In [15]: %timeit 5
100000000 loops, best of 3: 8.37 ns per loop
据我所知,某些级别可能正在进行某些缓存(例如OpenMP specification中所述),但该消息令人分心并且不太有用。有没有办法把它关掉?
答案 0 :(得分:5)
%timeit -q
将保持沉默,-o
选项将返回结果。这略有不同,但应该做到这一点。