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

如何在jupyter notebook 5中逐行分析python 3.5代码,python,python-3.x,profiling,jupyter-notebook,Python,Python 3.x,Profiling,Jupyter Notebook,如何找出每行python代码的执行时间 line_profiler适用于ipython,但不适用于jupyter笔记本电脑。我尝试将@profile添加到我的函数中,它给出了一个错误,即未定义名称“profile”。 有一种方法可以通过time.time()实现,但我想知道是否有内置的评测函数可以评测函数的每一行并显示执行时间 def prof_function(): x=10*20 y=10+x return (y) 安装测线轮廓仪 conda安装线路剖析器 有关的更

如何找出每行python代码的执行时间

line_profiler适用于ipython,但不适用于jupyter笔记本电脑。我尝试将@profile添加到我的函数中,它给出了一个错误,即未定义名称“profile”。 有一种方法可以通过time.time()实现,但我想知道是否有内置的评测函数可以评测函数的每一行并显示执行时间

def prof_function():
    x=10*20
    y=10+x
    return (y)
安装测线轮廓仪

conda安装线路剖析器


有关

的更多信息,您可以在jupyter笔记本中使用
测线仪

  • 安装它:
    pip安装行\u分析器
  • 在jupyter笔记本中,呼叫:
    %load\u ext line\u profiler
  • 定义函数
    prof_函数
    ,如示例所示
  • 最后,配置文件如下:
    %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)
    
    定时器单元:1e-06秒
    总时间:3e-06秒
    文件:
    函数:第1行的prof_函数
    行#每次命中的命中次数%时间行内容
    ==============================================================
    1 def prof_函数():
    211.01.033.3X=10*20
    31.0 1.0 33.3 y=10+x
    4 1.0 1.0 33.3返回(y)
    
    为了得到每一行的执行时间和一个漂亮的彩色热图,我使用了这个漂亮的ipython魔术

    安装:

    pip安装py热魔法

    要分析笔记本中的每一行,请执行以下操作:

    • 复制你的笔记本
    • 合并所有单元格(高亮显示全部和shift-m)
    • 在顶部创建一个新单元
    • 进入
    %load\u ext heat

    在第2个单元格顶部的第1行输入:

    %%heat  
    

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

    只是@S.a.答案的摘要

    !pip安装测线仪
    %加载\u外线\u探查器
    def func():
    打印('hi')
    %lprun-f func func()
    
    看起来不错,但要注意这个问题:@fjsj我想它不需要以前单元格中的任何值,如果它能工作就好了,但我将相关代码粘贴到了一个.py文件中,并使用了basic。除了运行
    R
    内核的Jupyter笔记本之外,还有类似的东西吗?在问了我的问题后发现了这篇文章:即使你在运行时中断了执行,它也能工作!