#flame-graph #cycle #ckb #file #script #consumption #statistical

bin+lib ckb-vm-pprof

统计 CKB 脚本周期消耗火焰图

7 个版本 (重大更改)

0.117.0 2024 年 7 月 30 日
0.116.1 2024 年 5 月 11 日
0.115.0-rc22024 年 3 月 21 日
0.114.0 2024 年 3 月 1 日
0.111.0 2023 年 11 月 16 日

#898魔法豆

Download history 151/week @ 2024-05-05 36/week @ 2024-05-12 9/week @ 2024-05-19 6/week @ 2024-06-02 2/week @ 2024-06-09 1/week @ 2024-06-16 191/week @ 2024-07-28 5/week @ 2024-08-04

每月下载量:196
用于 ckb-debugger

MIT 许可证

795KB
527

包含 (ELF 可执行文件/库, 3MB) res/bench_pairing, (ELF 可执行文件/库, 505KB) res/sprintf, (ELF 可执行文件/库, 34KB) res/abc, (ELF 可执行文件/库, 34KB) res/fib, (ELF 可执行文件/库, 34KB) res/outofmemory, (ELF 可执行文件/库, 35KB) res/sbrk

CKB VM PProf

此项目以火焰图可视化工具所期望的格式对分析数据进行配置。它是 ckb-vm 的子项目。

用法

假设要测试的程序是

int fib(int n) {
    if (n == 0 || n == 1) {
        return n;
    } else {
        return fib(n-1) + fib(n-2);
    }
}

int main() {
    if (fib(10) != 55) {
        return 1;
    }
    return 0;
}

我们应该在编译时加上 -g 选项来保存调试信息

$ riscv64-unknown-elf-gcc -g -o res/fib res/fib.c

为了将火焰图的文本表示转换为视觉表示,首先安装 inferno

$ cargo install inferno

然后,将由 FlameLayer 创建的文件传递给 inferno-flamegraph

$ cargo run -- --bin res/fib | inferno-flamegraph > res/fib.svg

打开 svg

了解更多关于 ckb-vm-pprof 的信息

  • ckb-vm-pprof-converter:此项目将 ckb-vm-pprof 生成的原始数据转换为 pprof 支持的 profile.proto 格式,以便进行详细分析。

许可证

MIT

依赖项

~7.5MB
~140K SLoC