如何使用line_profiler(来自Robert Kern)?

我尝试使用line_profiler模块通过Python文件获取逐行配置文件。到目前为止,这是我所做的:

1)使用.exe文件从pypi安装line_profiler

(我在WinXP和Win7上)。只需单击安装向导即可。

2)编写一小段代码(类似于此处另一个已回答问题中的要求)。

from line_profiler import LineProfiler

def do_stuff(numbers):

print numbers

numbers = 2

profile = LineProfiler(do_stuff(numbers))

profile.print_stats()

3)从IDLE / PyScripter运行代码。我只有时间。

Timer unit: 4.17188e-10 s

如何获得我执行的代码的完整逐行配置文件?我从未使用过装饰器之类的任何高级Python功能,因此很难理解如何使用此处和此处的几篇文章提供的指南。

回答:

只需按照第一个链接中的Dan

Riti的示例进行操作,但请使用您的代码。安装line_profiler模块后,您要做的就是@profile在要逐行分析的每个函数之前添加一个装饰器,并确保在代码中的其他位置至少每个函数被调用一次,因此对于您的琐碎示例代码而言,是这样的:

example.py 文件:

@profile

def do_stuff(numbers):

print numbers

numbers = 2

do_stuff(numbers)

已经这样做了,通过运行脚本kernprof.py 已安装在你的C:\Python27\Scripts目录中。这是在Windows

7命令行会话中执行此操作的(不太有趣的)实际输出:

> python "C:\Python27\Scripts\kernprof.py" -l -v example.py

2

Wrote profile results to example.py.lprof

Timer unit: 3.2079e-07 s

File: example.py

Function: do_stuff at line 2

Total time: 0.00185256 s

Line # Hits Time Per Hit % Time Line Contents

==============================================================

1 @profile

2 def do_stuff(numbers):

3 1 5775 5775.0 100.0 print numbers

kernprof.py为了在IDLE或PyScripter中进行等效操作,您可能需要调整最后一步(使用而不是直接由Python解释器运行测试脚本)。

看来在line_profilerv1.0中,该kernprof实用程序是作为可执行文件而不是.py像我在上面撰写本文时那样的脚本文件分发的。这意味着现在需要使用以下命令从命令行调用它:

> "C:\Python27\Scripts\kernprof.exe" -l -v example.py

以上是 如何使用line_profiler(来自Robert Kern)? 的全部内容, 来源链接: utcz.com/qa/420734.html

回到顶部