1 Py-spy:用于Python 程序性能监控、分析器-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

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

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

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,

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 标志来打印出与每个堆栈帧关联的局部变量。

图片

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

    关注

    117

    文章

    3785

    浏览量

    81000
  • 分析器
    +关注

    关注

    0

    文章

    92

    浏览量

    12492
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84624
  • Rust
    +关注

    关注

    1

    文章

    228

    浏览量

    6598
收藏 人收藏

    评论

    相关推荐

    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

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

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

    静态代码分析器

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

    7个好习惯快速提升Python程序性能

    使用局部变量替换模块名字空间中的变量,例如 ls = os.linesep。一方面可以提高程序性能,局部变量查找速度更快;另一方面可用简短标识符替代冗长的模块变量,提高可读性。
    发表于 07-07 10:05 977次阅读
    7个好习惯快速提升<b class='flag-5'>Python</b><b class='flag-5'>程序性能</b>

    利用矢量硬件如何提高应用程序性能

    本次会议演示了识别和修改代码以利用矢量硬件的过程如何提高应用程序性能
    的头像 发表于 05-31 11:46 1281次阅读

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

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

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

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

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

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

    了解CPI对分析程序性能的意义

    本小节讲述为什么使用 CPI 分析程序性能的意义。如果已经非常了解 CPI 对分析程序性能的意义,可以跳过本小节的阅读。
    的头像 发表于 12-15 10:30 1w次阅读

    LabVIEW应用程序性能瓶颈的解决

    了解如何识别和解决LabVIEW应用程序中的性能瓶颈。使用内置工具和VI分析器,您可以监视VIs的内存使用情况和执行时间,以确定导致应用程序性能下降的代码部分。
    发表于 03-29 14:03 8次下载
    LabVIEW应用<b class='flag-5'>程序</b>中<b class='flag-5'>性能</b>瓶颈的解决

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

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

    Python-写个可转债分析器

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

    python程序组成

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

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

    py-spy用于Python程序性能监控分析器
    的头像 发表于 11-01 10:13 1148次阅读
    <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>、<b class='flag-5'>分析器</b>