2 个不稳定版本
0.2.0 | 2024年7月7日 |
---|---|
0.1.0 | 2024年6月29日 |
#120 in 性能分析
98KB
2.5K SLoC
flamelens
flamelens
是一个终端中的交互式火焰图查看器。
这是什么?
Flamegraph 工具(如 FlameGraph 和 inferno)处理来自各种分析工具的输出,并以“折叠”格式生成中间数据,以便火焰图绘制。与将火焰图绘制为 SVG 文件不同,flamelens
读取折叠的堆栈数据,并在终端中生成交互式火焰图。
不再需要拖拽 SVG 文件,打开浏览器才能快速查看分析结果!
用法
运行 flamelens
并提供分析数据的“折叠堆栈”文件名
flamelens <folded-stacks-filename>
您也可以直接将数据通过管道传递给 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 <pid-of-python-program>
这需要在安装时启用 python
功能。
实时火焰图示例
快捷键
按键 | 动作 |
---|---|
hjkl (或 ← ↓ ↑→ ) |
导航光标以选择帧 |
f |
向下滚动 |
b |
向上滚动 |
G |
滚动到最底部 |
g |
滚动到最顶部 |
Enter |
放大所选帧 |
Esc |
重置缩放 |
/<regex> |
查找并突出显示与正则表达式匹配的帧 |
# |
查找并突出显示与所选帧匹配的帧 |
n |
跳转到下一个匹配项 |
N |
跳转到上一个匹配项 |
r |
重置到默认视图 |
z (在实时模式中) |
冻结火焰图 |
q (或 Ctrl + c ) |
退出 |
安装
如果您已安装 Rust,则 flamelens
在 crates.io 上可用,您可以使用以下命令安装它:
cargo install flamelens --locked
如果您需要实时火焰图功能,请使用 --all-features
选项安装
cargo install flamelens --locked --all-features
或者,在克隆此存储库后从源代码构建和安装
cargo install --path $(pwd) --locked
依赖项
~9–23MB
~333K SLoC