py-spy:Python程序的采样分析器
py-spy Sampling profiler for Python programs 项目地址: https://gitcode.com/gh_mirrors/py/py-spy
项目基础介绍和主要编程语言
py-spy 是一个用于Python程序的采样分析器。它允许用户在不重启程序或修改代码的情况下,可视化Python程序的运行情况。该项目主要使用Rust编程语言开发,以确保其具有极低的开销和高效的性能。
项目核心功能
- 低开销分析:py-spy通过Rust编写,不与被分析的Python程序运行在同一进程中,因此对生产环境的Python代码进行分析时,安全性高且性能影响极小。
- 跨平台支持:支持Linux、OSX、Windows和FreeBSD,并且兼容CPython解释器的多个版本(2.3-2.7和3.3-3.11)。
- 多种分析模式:
- record:记录分析结果到文件,支持生成火焰图、speedscope配置文件或原始数据。
- top:实时显示Python程序中占用时间最多的函数,类似于Unix的
top
命令。 - dump:显示每个Python线程的当前调用栈,有助于快速定位程序卡顿或死锁问题。
项目最近更新的功能
- 子进程分析:通过
--subprocesses
标志,py-spy现在可以分析目标程序的子进程,这对于使用多进程或gunicorn工作池的应用程序非常有用。 - 本地变量显示:在
dump
命令中,新增了--locals
标志,可以显示每个栈帧的本地变量,帮助开发者更深入地理解程序状态。 - 原生扩展支持:通过
--native
标志,py-spy现在支持分析用C/C++或Cython编写的Python原生扩展,前提是这些扩展编译时带有符号信息。
通过这些更新,py-spy进一步增强了其作为生产环境中Python程序分析工具的能力,提供了更全面和深入的分析功能。
py-spy Sampling profiler for Python programs 项目地址: https://gitcode.com/gh_mirrors/py/py-spy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考