py-spy,一个高效的python代码性能瓶颈分析库
py-spy 是一款用于对 Python 应用程序进行性能分析的工具,它可以生成火焰图,展示应用程序在代码层面的性能瓶颈,以帮助开发者进行性能优化。
应用场景:py-spy 可以用于任何需要对 Python 应用程序进行性能分析的场景,如优化大型 Web 应用程序、提高数据处理速度等。
通过使用 py-spy 进行性能分析,开发者可以快速发现应用程序的性能瓶颈,进而进行性能优化,提高应用程序的稳定性和可靠性,从而提升用户体验和满意度。
授权协议:MIT,支持商用,商用不要求公开修改后的源码。
开发语言:Rust
支持的操作系统:Linux、macOS、Windows
是否跨平台:是
Twitter网址:https://twitter.com/py_spy
适用人群:Python 开发者、性能工程师、Web 开发者等。
软件官网:https://github.com/benfred/py-spy
软件文档网址:https://github.com/benfred/py-spy#usage
软件源码官网:https://github.com/benfred/py-spy
软件安装和运行依赖哪些第三方库:py-spy 依赖于 Python 3.4+ 和 Rust 工具链。
其他类似功能的软件有哪些:
cProfile:Python 自带的性能分析工具,可以生成分析报告。
Pyflame:类似于 py-spy 的性能分析工具。
line_profiler:可以对 Python 代码的每一行进行性能分析。
使用举例:
跟踪已知pid值的python的进程的运行状况,即时找出最大耗时项:
$ py-spy top --pid [pid]
启动一个python应用并实时显示各函数的时间占用:
$ py-spy top -- python [path/to/file.py]
生成SVG 格式的火焰图,显示函数耗时:
$ py-spy record -o [path/to/profile.svg] --pid [pid]
忠实记录python进程的调用栈数据:
$ py-spy dump --pid [pid]

py-spy 能高效分析出python代码性能瓶颈,通过图示直观展示出耗时过多、调用次数过多的函数。
最近国外网友 用少于 100 行的 Rust 使 Python 变快 100 倍 (英文),文章针对一个有性能问题的 Python 库,使用 Rust 重写并作了三轮优化后,提升了性能 100 倍。文中使用了 py-spy 库绘制火焰图,分析出了代码的瓶颈点,并以此作为优化的依据,可以看到前后火焰图的差别很大。
与 py-spy 类似的火焰图工具,在php方面,有phpspy这个命令行工具非常方便得分析php网站代码的函数性能瓶颈,(官网 adsr/phpspy: low-overhead sampling profiler for PHP 7+ (github.com) ,phpspy的使用实例: blog/php火焰图.md at master · Sungq1990/blog · GitHub )
版权声明:本文《py-spy,一个高效的python代码性能瓶颈分析库》为「linux名库」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。联系方式osschina@qq.com