#flame-graph #tui #cli

bin+lib flamelens

终端火焰图查看器

2 个不稳定版本

0.2.0 2024年7月7日
0.1.0 2024年6月29日

#120 in 性能分析

MIT 许可协议

98KB
2.5K SLoC

flamelens

flamelens 是一个终端中的交互式火焰图查看器。

Demo

这是什么?

Flamegraph 工具(如 FlameGraphinferno)处理来自各种分析工具的输出,并以“折叠”格式生成中间数据,以便火焰图绘制。与将火焰图绘制为 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 功能。

实时火焰图示例

demo-live

快捷键

按键 动作
hjkl(或 ← ↓ ↑→ 导航光标以选择帧
f 向下滚动
b 向上滚动
G 滚动到最底部
g 滚动到最顶部
Enter 放大所选帧
Esc 重置缩放
/<regex> 查找并突出显示与正则表达式匹配的帧
# 查找并突出显示与所选帧匹配的帧
n 跳转到下一个匹配项
N 跳转到上一个匹配项
r 重置到默认视图
z(在实时模式中) 冻结火焰图
q(或 Ctrl + c 退出

安装

如果您已安装 Rust,则 flamelenscrates.io 上可用,您可以使用以下命令安装它:

cargo install flamelens --locked

如果您需要实时火焰图功能,请使用 --all-features 选项安装

cargo install flamelens --locked --all-features

或者,在克隆此存储库后从源代码构建和安装

cargo install --path $(pwd) --locked

依赖项

~9–23MB
~333K SLoC