使用eBPF追踪Firefox的内存分配

2025-05-31

作者使用eBPF(扩展伯克利分组过滤器)技术追踪Firefox JavaScript引擎SpiderMonkey中的内存分配。最初目标是定位频繁创建Rooted对象的源码位置,以优化内存管理。通过bpftrace工具和用户探针(uprobe),作者成功追踪到`registerWithRootLists`函数,并利用ustack函数获取调用栈信息。最终,作者成功生成报告,并据此提交了多个bug报告,优化了内存分配,减少了数千万次`registerWithRootLists`调用。

开发 bpftrace