rspack-sftrace
使用 LLVM XRay 追踪 Rspack Rust 函数调用,用于性能分析、故障排除及可视化执行流程。
简介
rspack-sftrace 提供了一套用于剖析 Rspack 打包器 Rust 核心的结构化方法。通过利用 LLVM XRay 插装技术,此工具能获取函数进入与退出点的详细信息,协助开发人员识别性能瓶颈、理解复杂的执行流程,并排除构建过程中的延迟问题。它专为 Rspack 贡献者与在 monorepo 环境中工作的性能工程师而设计。
该工具提供了从二进制文件插装到可视化分析的完整诊断管线。用户可以生成过滤后的日志以隔离特定函数符号,大幅降低大型构建中的干扰信息。工作流程包含将原始日志转换为 Polars Dataframe 以进行统计分析,或转换为 Perfetto 兼容的 protobuf 格式以进行高精度的可视化追踪。这能协助识别热点路径、递归函数开销以及线程特定的执行模式。
-
通过 LLVM XRay 对 Rust 函数调用进行插装,以获得精确的计时数据。
-
高级过滤功能,支持使用正则表达式或列表匹配来锁定特定函数符号。
-
支持将追踪数据导出至 Polars 进行程序化分析,包括按函数 ID 分组及计算执行时间。
-
将追踪成品转换为 Perfetto protobuf 格式,以集成至 VizTracer 等可视化工具中。
-
支持线程感知剖析,以捕捉现代高性能构建工具中常见的并发执行模式。
-
工具预期目标项目需在启用插装的情况下构建 (SFTRACE=1)。
-
在项目示例目录中执行可获得最佳性能结果。
-
请注意,过滤功能不会自动保留子层函数调用;若需完整的调用堆栈,请尽量执行无过滤的截取。
-
确保环境中已安装必要的原生依赖包与二进制工具 (sftrace)。
-
追踪日志文件可能会非常庞大;请将成品存储在项目目录中,以避免耗尽系统存储空间。
仓库统计
- Star 数
- 12,667
- Fork 数
- 794
- Open Issue 数
- 189
- 主要语言
- Rust
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年5月3日 09:35