看來,在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