小编典典

在 ipython 笔记本中测量单元执行时间的简单方法

all

除了单元格的原始输出之外,我还想获得在单元格执行上花费的时间。

为此,我尝试了,%%timeit -r1 -n1但它没有公开单元格中定义的变量。

%%time适用于仅包含 1 条语句的单元格。

In[1]: %%time
       1
CPU times: user 4 碌s, sys: 0 ns, total: 4 碌s
Wall time: 5.96 碌s
Out[1]: 1

In[2]: %%time
       # Notice there is no out result in this case.
       x = 1
       x
CPU times: user 3 碌s, sys: 0 ns, total: 3 碌s
Wall time: 5.96 碌s

最好的方法是什么?

更新

在 Nbextension中使用
Execute Time 已经有一段时间了。太好了。

更新 2021-03

到目前为止,这是正确的答案。从本质上讲,%%time现在%%timeit两者都按预期工作。


阅读 76

收藏
2022-05-04

共1个答案

小编典典

这只是旧版本中的一个问题。

您现在需要做的就是放在%%time单元格的顶部。

在此处输入图像描述

%time衡量某项运行所需的时间。报告长时间运行的操作比进行低级优化更好。

%%timeit是一个基准测试工具,它一遍又一遍地运行语句,以提供某些语句的 平均
运行时间以及标准偏差。由于语句重复执行的方式,在单元格中创建的变量%%timeit在其他单元格中不可用。

在此处输入图像描述

%%timeit使用
pythontimeit模块。那个文档说,

它避免了许多用于测量执行时间的常见陷阱。另请参阅 Tim Peters 对 Python Cookbook 中“算法”一章的介绍,由 O’eilly
出版。

希望
该模块仍然具有相关性,因为它所引用的参考描述了诸如(1)Windows 98 的解决方法time.time()每秒仅更新 18.2
次,以及(2)将所有语句集中到一行以避免字节码开销增加行号计数器。

2022-05-04