0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

py-spy:用于Python程序的性能监控、分析器

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-11-01 10:13 次阅读

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,你也可在 **Python实用宝典 **公众号后台回复 **pyspy **下载。
GitHub Release Page: https://github.com/benfred/py-spy/releases

2.用法

py-spy 在命令行中进行工作,获取你要从监控的程序的PID或你要运行的python程序的文件。分别有三种分析方法 reco****rdtop 以及 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 标志来打印出与每个堆栈帧关联的局部变量。

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    4

    文章

    3552

    浏览量

    88825
  • 程序
    +关注

    关注

    117

    文章

    3788

    浏览量

    81131
  • 分析器
    +关注

    关注

    0

    文章

    93

    浏览量

    12523
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84778
  • Rust
    +关注

    关注

    1

    文章

    229

    浏览量

    6619
收藏 人收藏

    评论

    相关推荐

    CCS中性能分析器profile的使用?

    专家好, CCS调试程序过程中,需要分析下各函数的执行时间,CCS中提供了性能分析器profile Q1:性能
    发表于 06-21 19:20

    OmniBER OTN 2.5 Gb/s通信性能分析器

    OmniBER OTN 2.5 Gb/s通信性能分析器
    发表于 07-10 16:45

    遥控分析器

    遥控分析器
    发表于 09-18 14:14 613次阅读
    遥控<b class='flag-5'>分析器</b>

    网络分析器,网络分析器原理是什么?

    网络分析器,网络分析器原理是什么? 网络分析器   具有发现并解决各种故障特性的硬件或软件设备
    发表于 03-22 11:25 1056次阅读

    静态代码分析器

    Fortify的静态代码分析器(Static Code Analyzer,SCA)是组成Fortify 360的三个分析器之一。SCA工作在开发阶段,以用于分析应用
    发表于 04-07 20:32 22次下载

    英特尔图形性能分析器的资源介绍

    了解有关作为英特尔®图形性能分析器一部分的资源历史记录功能的更多信息
    的头像 发表于 11-12 06:40 2499次阅读

    使用Intel图形性能分析器从游戏开发中获得最佳性能

    使用英特尔®图形性能分析器,从游戏开发中获得最佳性能
    的头像 发表于 11-08 06:49 2633次阅读

    英特尔图形性能分析器(GPA)中的实时分析工具介绍

    Seth提供图形监视,系统分析器和HUD。 这些组件构成了英特尔图形性能分析器中的实时分析工具。
    的头像 发表于 11-07 06:53 5175次阅读

    用于Android的英特尔GPA系统分析器工具介绍

    描述:本演示重点深入介绍用于Android的英特尔®GPA系统分析器和帧分析器工具
    的头像 发表于 11-06 06:57 3488次阅读

    如何使用py2exe使Python转换成exe程序

    py2exe 能够把Python script 转换成可以在windows 上独立执行的( 即不需安装Python)的exe 程序(加上其它必需的运行时函数库)。
    发表于 09-21 17:12 8次下载
    如何使用<b class='flag-5'>py</b>2exe使<b class='flag-5'>Python</b>转换成exe<b class='flag-5'>程序</b>

    LogAnalyzer(日志分析器)辅助应用程序简析

    LogAnalyzer(日志分析器)是HostMonitor的一个辅助应用程序,它包含在高级主机监视软件包中。
    的头像 发表于 09-14 09:56 2198次阅读

    Python-写个可转债分析器

    Python写个可转债分析器
    的头像 发表于 02-16 15:13 1321次阅读
    <b class='flag-5'>Python</b>-写个可转债<b class='flag-5'>分析器</b>

    python程序组成

    python模块对应python程序文件,每个python文件都是一个模块。 模块a.py导入模块b.
    的头像 发表于 02-21 14:45 1097次阅读
    <b class='flag-5'>python</b><b class='flag-5'>程序</b>组成

    Py-spy用于Python 程序性能监控分析器

    py-spy用于Python程序性能监控分析器
    的头像 发表于 10-16 11:50 891次阅读
    <b class='flag-5'>Py-spy</b>:<b class='flag-5'>用于</b><b class='flag-5'>Python</b> <b class='flag-5'>程序性能</b><b class='flag-5'>监控</b>、<b class='flag-5'>分析器</b>

    python写完程序之后怎么运行

    Python是一门简洁、易学的编程语言,被广泛应用于数据分析、人工智能等领域。在学习Python编程的过程中,了解程序的运行机制是至关重要的
    的头像 发表于 11-22 11:10 1023次阅读