如何使用line_profiler(来自Robert Kern)?
我尝试使用line_profiler模块通过Python文件获取逐行配置文件。到目前为止,这是我所做的:
1)使用.exe文件从pypi安装line_profiler
(我在WinXP和Win7上)。只需单击安装向导即可。
2)编写一小段代码(类似于此处另一个已回答问题中的要求)。
from line_profiler import LineProfilerdef 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
文件:
@profiledef 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.py2
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_profiler
v1.0中,该kernprof
实用程序是作为可执行文件而不是.py
像我在上面撰写本文时那样的脚本文件分发的。这意味着现在需要使用以下命令从命令行调用它:
> "C:\Python27\Scripts\kernprof.exe" -l -v example.py
以上是 如何使用line_profiler(来自Robert Kern)? 的全部内容, 来源链接: utcz.com/qa/420734.html