社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Py-spy:优秀的 Python 程序性能监控、分析器

Python绿色通道 • 2 年前 • 391 次点击  
每天学Python新技能

后台回复大礼包】送你Python自学大礼包



    




py-spy是用于Python程序的性能监控、分析器。它使你可以直观地看到Python程序花费的时间,而无需重新启动程序或以任何方式修改代码。

py-spy的开销非常低:为了最大化提高速度,它是用Rust编写的,并且与配置的Python程序不在同一进程中运行。这意味着 py-spy 可以安全地用于生产环境的Python程序。

py-spy 可在 Linux,OSX,Windows 和 FreeBSD 上运行,并支持所有最新版本的CPython解释器(2.3-2.7和3.3-3.8版)进行性能分析。

1.安装



可以通过以下方式从 PyPI 安装预构建的二进制wheel文件:



    
pip install py-spy


你也可以从 GitHub Release Page 下载预构建的二进制文件
GitHub Release Page: https://github.com/benfred/py-spy/releases


2.用法



py-spy 在命令行中进行工作,获取你要从监控的程序的PID或你要运行的python程序的文件。分别有三种分析方法 recordtop 以及 dump

record

py-spy支持使用record命令将配置文件记录到文件中。例如,您可以通过执行以下操作来生成python进程的热力图:

py-spy record -o profile.svg --pid 12345
# OR
py-spy record -o profile.svg -- python myprogram.py


它将生成一个交互式SVG文件,如下所示:

你可以使用参数 --format 更改文件格式。请参阅参考资料:py-spy record --help 以获取有关其他选项的信息,包括更改采样率,仅包含GIL的线程进行过滤,对本机C扩展进行概要分析,显示线程ID,概要分析子进程等。

Top


Top显示了在python程序中花费最多时间的函数的实时视图,类似于Unix top命令。使用以下命令运行:

py-spy top --pid 12345
# OR
py-spy top -- python myprogram.py


将显示你的python程序的实时函数消耗:

Dump


py-spy 还可以使用 dump命令显示每个 python 线程的当前调用堆栈:

py-spy dump --pid 12345


这会将每个线程的调用堆栈以及其他一些基本进程信息转发到控制台:

对于需要一个调用堆栈来确定python程序挂在何处的情况,这很有用。该命令还可以通过设置 --locals 标志来打印出与每个堆栈帧关联的局部变量。





    
  1. ChatGPT推荐的Python工具书,豆瓣9.1分,太赞了!

  2. 太赞了!用ChatGPT找到的Python学习资料

  3. 第一批因ChatGPT坐牢的人,已经上路了



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152420
 
391 次点击