除了单元格的原始输出之外,我还想获得在单元格执行上花费的时间。
为此,我尝试了 %%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
现在都可以正常工作。
原文由 colinfang 发布,翻译遵循 CC BY-SA 4.0 许可协议
这只是旧版本中的一个问题。
您现在需要做的就是将
%%time
放在单元格的顶部。%%time
测量运行某个东西需要多长时间。报告长时间运行的操作比进行低级优化更好。%%timeit
是一个基准测试工具,它反复运行语句以提供某些语句的 平均 运行时间以及标准偏差。由于语句重复执行的方式,在%%timeit
单元格中创建的变量在其他单元格中不可用。%%timeit
使用pythontimeit
模块。那个文档说,我 希望 该模块仍然相关,因为 它引用的参考 描述了诸如(1)Windows 98 的解决方法仅更新
time.time()
每秒 18.2 次,以及(2)将所有语句干扰到一个line 以避免增加行号计数器的字节码开销。当前评分最高的答案 以及其他一些过时的答案(应该删除,因为它们现在 _具有高度误导性_) 确实 有有用的评论表明这些答案不正确:
%%time
即使最后一条语句不是print