有时我会执行一个需要很长时间才能计算的方法
In [1]:
long_running_invocation()
Out[1]:
我常常有兴趣知道花了多少时间,所以我必须写下这个:
In[2]:
import time
start = time.time()
long_running_invocation()
end = time.time()
print end - start
Out[2]: 1024
有没有办法配置我的IPython笔记本,以便它自动打印我正在制作的每个调用的执行时间,如下例所示?
In [1]:
long_running_invocation()
Out[1] (1.59s):
答案 0 :(得分:6)
此ipython扩展可以满足您的需求:https://github.com/cpcloud/ipython-autotime
将它放在笔记本的顶部加载:
%install_ext https://raw.github.com/cpcloud/ipython-autotime/master/autotime.py
%load_ext autotime
加载后,每个后续单元格执行将包括作为其输出的一部分执行所花费的时间。
答案 1 :(得分:2)
我还没有找到一种方法让每个单元格输出执行代码所需的时间,但你可以使用单元格魔法:%time或%timeit
答案 2 :(得分:1)
您现在可以在单元格的开头使用%%time
魔法,如下所示:
%%time
data = sc.textFile(sample_location)
doc_count = data.count()
doc_objs = data.map(lambda x: json.loads(x))
执行时会输出如下输出:
CPU times: user 372 ms, sys: 48 ms, total: 420 ms
Wall time: 37.7 s
答案 3 :(得分:0)
以自动显示执行时间而不在每个单元格中运行任何 %%time
或 %%timelit
或 time.time()
的方式配置 ipython notebook 的最简单方法是使用 ipython-autotime包。
在notebook开头安装包
pip install ipython-autotime
然后通过在下面运行来加载扩展
%load_ext autotime
一旦你加载了它,在此之后运行的任何单元格都会给你单元格的执行时间。
如果您想关闭它,请不要担心,只需在下面运行即可卸载扩展程序
%unload_ext autotime
它非常简单,随时可以使用。
如果你想查看更多,可以参考ipython-autime documentation或其github source