flamelens
flamelens
是一个在终端中交互式查看火焰图的工具。
这是什么?
像FlameGraph和inferno这样的火焰图工具会处理各种性能分析工具的输出,并生成"折叠"格式的中间数据,以便绘制火焰图。flamelens
不是将火焰图绘制为SVG文件,而是接收折叠堆栈数据并在终端中生成一个交互式火焰图。
不再需要拖动SVG文件并打开浏览器来快速查看性能分析结果!
使用方法
使用包含"折叠堆栈"形式的性能分析数据的文件名运行flamelens
:
flamelens <折叠堆栈文件名>
你也可以直接将数据通过管道传输给flamelens
,而无需提供文件名。
cargo-flamegraph
如果你在Linux上使用cargo flamegraph
对程序进行性能分析,你会得到一个由perf
生成的perf.data
文件。你可以通过以下方式借助inferno在flamelens
中可视化它:
perf script -i perf.data | inferno-collapse-perf | flamelens
Python
使用py-spy
作为分析器,显示正在运行的Python程序的实时火焰图:
flamelens --pid <python程序的pid>
这需要在安装时启用python
功能。
实时火焰图示例
按键绑定
按键 | 动作 |
---|---|
hjkl (或← ↓ ↑→ ) | 移动光标选择帧 |
f | 向下滚动 |
b | 向上滚动 |
G | 滚动到底部 |
g | 滚动到顶部 |
Enter | 放大选中的帧 |
Esc | 重置缩放 |
/<正则表达式> | 查找并高亮匹配正则表达式的帧 |
# | 查找并高亮与选中帧匹配的帧 |
n | 跳转到下一个匹配项 |
N | 跳转到上一个匹配项 |
r | 重置为默认视图 |
z (在实时模式下) | 冻结火焰图 |
q (或Ctrl + c ) | 退出 |
安装
如果你已安装Rust,可以通过crates.io安装flamelens
:
cargo install flamelens --locked
如果你需要实时火焰图功能,请使用--all-features
选项安装:
cargo install flamelens --locked --all-features
或者,克隆本仓库后从源代码构建并安装:
cargo install --path $(pwd) --locked