只需按照第一个链接中的Dan
Riti的示例进行操作,但请使用您的代码。安装
line_profiler模块后,您要做的就是
@profile在要逐行分析的每个函数之前添加一个装饰器,并确保在代码中的其他位置至少每个函数被调用一次,因此对于您的琐碎示例代码而言,是这样的:
example.py文件:
@profiledef do_stuff(numbers): print numbersnumbers = 2do_stuff(numbers)
已经这样做了,通过运行脚本
kernprof.py✶ 已安装在你的
C:Python27scripts目录中。这是在Windows
7命令行会话中执行此操作的(不太有趣的)实际输出:
> python "C:Python27scriptskernprof.py" -l -v example.py2Wrote profile results to example.py.lprofTimer unit: 3.2079e-07 sFile: example.pyFunction: do_stuff at line 2Total time: 0.00185256 sLine # 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:Python27scriptskernprof.exe" -l -v example.py



