看来,在Spyder的(IPython3内核),可以通过在代码单元的顶部运行%%time
或%%timeit
命令容易时间码单元:测量运行时
#%%
%%time # or %%timeit which measures average runtime from multiple runs
....
#%% (the previous cell ends and the next begins)
运行上面的代码可以获得由#%%
对定义的单元的运行时间。这是Spyder中的工作原理,但在Jupyter Notebook环境中并不适用。
在Jupyter代码中,单元格不是由#%%
分隔符定义的,而是通过单击菜单栏中的按钮来创建的。而据我所知,命令%%time
和%%timeit
都会引发编译错误。似乎Jupyter无法识别它们,但这很奇怪,因为我的Jupyter实际上使用与Spyder相同的IPython内核。有一件事是,在Jupyter的工作原理是%time
和%timeit
的命令,但只能测量的一个行代码运行时,即,必须制定类似
%time blah blah
而且事实证明我甚至不能测量由多于一行组成的for
循环。所以这种方法对我来说是不可取的。有没有什么方法可以在Jupyter中使用魔术命令%time(it)
等来评估单元运行时?
(PS:如果在Spyder的我在池的顶部附加%time
命令它会给Wall time: 0 ns
因为没有在同一行下它和它的实际测量什么)
'%% time'和'%% timeit'是有效的IPython单元格魔术,eithet应该作为笔记本单元格的第一行。你使用的是Jupyter和IPython的版本? – cco
@cco Jupyter 4.3.1和IPython 4.2.1应该是最新的。 – Vim
当您尝试使用'%% time'时,请显示单元格和错误信息 - 如果'%time'有效,'%% time'也应该如此。 – cco