py-spy火焰图可直观定位Python性能瓶颈:X轴为采样时间占比,Y轴为调用栈深度,矩形宽度反映函数耗时占比,宽峰即热点;支持对运行中进程(--pid)或新脚本(-- python app.py)采样生成交互式SVG,无需改代码。

Python函数运行慢,别急着重写代码,先用火焰图(Flame Graph)一眼看清哪一行、哪个调用栈在拖后腿——它把耗时可视化成层层叠叠的“火焰”,宽的地方就是热点。
安装和生成火焰图数据
用 py-spy 最省事,无需修改代码,支持正在运行的进程或直接采样脚本:
- 安装:pip install py-spy
- 对已运行的 Python 进程(比如 PID 是 1234)采样 5 秒:py-spy record -p 1234 -o profile.svg --duration 5
- 对脚本直接运行并采样:py-spy record -o profile.svg -- python your_script.py
生成的 profile.svg 可直接用浏览器打开,交互式缩放、搜索函数名都很方便。
看懂火焰图的关键特征
横轴是采样时间(不表示绝对时间,而是相对占比),纵轴是调用栈深度。每一块矩形代表一个函数调用,宽度 = 它被采样到的次数占比,越宽越耗时。
立即学习“Python免费学习笔记(深入)”;
标签: python js json svg 浏览器 app 栈 ai 热点 python函数 性能瓶颈
还木有评论哦,快来抢沙发吧~