如何配置我的IPython笔记本,以便始终将执行时间显示为输出的一部分?

时间:2014-12-03 08:27:44

标签: ipython-notebook

有时我会执行一个需要很长时间才能计算的方法

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):

4 个答案:

答案 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

ipython cell magics

答案 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%%timelittime.time() 的方式配置 ipython notebook 的最简单方法是使用 ipython-autotime包。

在notebook开头安装包

pip install ipython-autotime

然后通过在下面运行来加载扩展

%load_ext autotime

一旦你加载了它,在此之后运行的任何单元格都会给你单元格的执行时间。

如果您想关闭它,请不要担心,只需在下面运行即可卸载扩展程序

%unload_ext autotime

它非常简单,随时可以使用。

如果你想查看更多,可以参考ipython-autime documentation或其github source