行分析器
面向Sublime Text的基于行的Python性能分析插件
详细信息
安装次数
- 总计 905
- Win 462
- Mac 252
- Linux 191
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
说明文档
LineProfiler
此插件在Sublime Text中提供了一个简单界面来访问line_profiler和kernprof。
安装
LineProfiler可通过包控制使用,这是安装它的最简单方法。或者,你也可以下载此仓库并将其放置在您的 Packages
目录中。
配置
- 安装
line_profiler
和kernprof.py
。- 最简单的安装方法是
pip install --pre line_profiler
。 - 也可以通过从line_profiler网站下载来安装。
- 最简单的安装方法是
- 可选:更新LineProfiler的设置
- 在(首选 > 包设置 > LineProfiler > “设置 - 用户”)中可访问
可用的首选项是
kernprof
:(可选)您下载的与line_profiler
模块一起的kerprof.py
文件的路径。pythonpath
:(可选)要追加到默认PYTHONPATH开头的冒号分隔路径列表。poll_timeout_seconds
:(可选)在杀死分析器之前等待的秒数。如果您正在分析运行超过一分钟的代码,请增加此值。poll_sleep_seconds
:(可选)在轮询分析器以获取结果之前睡眠的秒数。如果您发现获取分析器结果的时间延迟太长,请减少此值。
使用
将@profile
注释添加到您要分析的任何函数中。然后,通过可用的绑定运行插件:* ctrl-alt-shift-p
* 右键单击 > “运行line_profiler” * 工具 > 包 > “运行line_profiler”
如果成功,将会出现一个临时缓冲区,显示您的结果。如果不成功,请检查控制台(ctrl-`
)查看任何错误消息。
分析器在后台进程中运行,因此Sublime会继续正常运行,直到返回结果为止。
示例
这是一个尝试使用LineProfiler并熟悉插件的简单方法。
步骤 1:打开Sublime并创建一个简单的Python文件
def foo():
for i in xrange(1000):
bar = i**2
baz = i*i
if __name__ == '__main__':
foo()
当然,它可能没有什么实际作用,但它会运行。请确保告诉Sublime这是Python代码,无论是通过将其保存为.py文件,还是在下方的工具栏中选择Python。
步骤 2:将@profile
装饰器添加到foo
函数中,如下所示
@profile
def foo():
(其他内容保持不变。)
步骤 3:从命令面板、右键菜单或键盘快捷键运行LineProfiler。该命令仅在Python模式下可用,因此请首先检查这一点。
步骤 4:等待大约一秒钟,然后观察新的标签页中出现的性能分析结果。如果一切顺利,你应该会看到foo
函数的每个代码行都被标注了它们的执行次数、总时间和每次运行的时间。
function foo in file tmpev_rzr.py took 0.001248 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
2 @profile
3 def foo():
4 1001 372 0.4 29.8 for i in xrange(1000):
5 1000 458 0.5 36.7 bar = i**2
6 1000 418 0.4 33.5 baz = i*i
某些行可能会被突出显示。这些是在您的代码中占用不成比例时间的“热点”。
如果您在 seconds 后没有看到任何内容,请检查控制台(ctrl-`
)以查看错误原因。通常,问题只是一个简单的问题,即设置好用户设置文件中的正确路径。