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

图片

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

    关注

    114

    文章

    3631

    浏览量

    79543
  • 分析器
    +关注

    关注

    0

    文章

    90

    浏览量

    12410
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83467
  • Rust
    +关注

    关注

    1

    文章

    223

    浏览量

    6387
收藏 人收藏

    评论

    相关推荐

    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

    jconsole的部署和运行

    一、jconsole能干什么查看jvm内存使用情况就可以使用jconsole,从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在
    发表于 07-11 06:07

    静态代码分析器

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

    py3.x和py2.x的区别简要分析

    和2.x的区别。特此在自己的空间中记录一下,以备以后查找方便,也可以分享给想学习Python的friends. 1.性能 Py3.0运行 pystone benchmark的速度比Py
    发表于 12-05 14:08 1874次阅读

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

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

    用于OpenGL的英特尔图形性能分析器性能介绍

    Seth为OpenGL提供了图形帧分析器。 了解这款功能强大的分析仪的基本特性和功能。
    的头像 发表于 11-09 06:25 2645次阅读

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

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

    如何使用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>

    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 1648次阅读

    基于温度监控系统的TEMP SPY

    电子发烧友网站提供《基于温度监控系统的TEMP SPY.zip》资料免费下载
    发表于 12-12 10:26 0次下载
    基于温度<b class='flag-5'>监控</b>系统的TEMP <b class='flag-5'>SPY</b>

    Python-写个可转债分析器

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

    python程序组成

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

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

    py-spy用于Python程序性能监控分析器
    的头像 发表于 11-01 10:13 383次阅读
    <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>