如何在 jupyter notebook 5 中逐行分析 python 3.5 代码

新手上路,请多包涵

如何找出每行python代码所花费的执行时间。

line_profiler 适用于 ipython 但不适用于 jupyter notebook。我尝试将 @profile 添加到我的函数中,但它给出了错误消息,指出未定义名称“profile”。有一种方法可以通过 time.time() 来完成,但我想知道是否有任何内置的分析功能可以分析我的函数的每一行并显示执行时间。

 def prof_function():
    x=10*20
    y=10+x
    return (y)

原文由 Aseem 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 602
2 个回答

您可以在 jupyter 笔记本中使用 line_profiler

  1. 安装它: pip install line_profiler
  2. 在你的 jupyter notebook 中,调用: %load_ext line_profiler
  3. 定义您的函数 prof_function 如您的示例所示。
  4. 最后配置文件如下: %lprun -f prof_function prof_function()

这将提供输出:

 Timer unit: 1e-06 s

Total time: 3e-06 s
File: <ipython-input-22-41854af628da>
Function: prof_function at line 1

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
     1                                           def prof_function():
     2         1          1.0      1.0     33.3      x=10*20
     3         1          1.0      1.0     33.3      y=10+x
     4         1          1.0      1.0     33.3      return (y)

原文由 S.A. 发布,翻译遵循 CC BY-SA 3.0 许可协议

为了获得每一行的执行时间并获得一个漂亮的彩色编码热图,我使用了这个漂亮的 ipython 魔法…… https://github.com/csurfer/pyheatmagic

在此处输入图像描述

安装:

pip 安装 py-heat-magic

要分析笔记本中的每一行:

  • 复制你的笔记本。
  • 合并所有单元格(突出显示所有和 shift-m)
  • 在顶部创建一个新单元格
  • 进入

%load_ext heat

在第二个单元格的顶部,在第一行输入:

 %%heat

如果您的代码超过 2000 行,您可能会遇到问题。

原文由 DougR 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题