Loading...  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 文件: ```shell pip install py-spy ``` 你也可以从 GitHub Release Page 下载预构建的二进制文件,如果网络无法连接 GitHub,你也可在公众号后台回复**pyspy**下载。 GitHub Release Page: https://github.com/benfred/py-spy/releases _**2.用法**_ py-spy 在命令行中进行工作,获取你要从监控的程序的 PID 或你要运行的 python 程序的文件。分别有三种分析方法 **record**,**top**以及 **dump**: ### **record** py-spy 支持使用`record`命令将配置文件记录到文件中。例如,您可以通过执行以下操作来生成 python 进程的热力图: ```shell py-spy record -o profile.svg --pid 12345# ORpy-spy record -o profile.svg -- python myprogram.py ``` 它将生成一个交互式 SVG 文件,如下所示:  你可以使用参数 --format 更改文件格式。请参阅参考资料:`**py-spy record --help**` 以获取有关其他选项的信息,包括更改采样率,仅包含 GIL 的线程进行过滤,对本机 C 扩展进行概要分析,显示线程 ID,概要分析子进程等。 ### **Top** Top 显示了在 python 程序中花费最多时间的函数的实时视图,类似于 Unix top 命令。使用以下命令运行: ```shell py-spy top --pid 12345# ORpy-spy top -- python myprogram.py ``` 将显示你的 python 程序的实时函数消耗:  ### **Dump** py-spy 还可以使用 dump 命令显示每个 python 线程的当前调用堆栈: ```shell py-spy dump --pid 12345 ``` 这会将每个线程的调用堆栈以及其他一些基本进程信息转发到控制台: 对于需要一个调用堆栈来确定 python 程序挂在何处的情况,这很有用。该命令还可以通过设置 --locals 标志来打印出与每个堆栈帧关联的局部变量。  我们的文章到此就结束啦,我们下期再见,Respect!  End 最后修改:2023 年 03 月 04 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 15879 如果觉得我的文章对你有用,请随意赞赏