Tracing
tracing 用于记录 Rspack 内部的编译流程,既可用于性能分析,也可用于定位 Bug。
开启 Tracing
可以通过以下两种方式开启 tracing:
- 如果使用 @rspack/cli 或 Rsbuild:通过设置
RSPACK_PROFILE环境变量来开启:
- 如果直接使用
@rspack/core:可通过rspack.experiments.globalTrace.register和rspack.experiments.globalTrace.cleanup开启。你可以查看我们如何在@rspack/cli中实现RSPACK_PROFILE获取更多信息。
生成的 rspack.pftrace 文件可以在 ui.perfetto.dev 中查看和分析:

Tracing layer
Rspack 支持 perfetto 和 logger 两种 layer:
perfetto:默认值,生成符合perfetto proto格式的 rspack.pftrace 文件,可导出到 perfetto 进行复杂的性能分析logger:直接在终端输出日志,适用于简单的日志分析或在 CI 环境中查看编译流程
可以通过 RSPACK_TRACE_LAYER 环境变量指定 layer:
Tracing output
可以指定 trace 的输出位置:
loggerlayer 的默认输出为stdoutperfettolayer 的默认输出为rspack.pftrace
通过 RSPACK_TRACE_OUTPUT 环境变量可以自定义输出位置:
Tracing filter
通过 RSPACK_PROFILE 可以配置需要过滤的数据。Rspack 提供了两个预设的 preset:
RSPACK_PROFILE=OVERVIEW:默认值,只展示核心的构建流程,生成的 JSON 文件较小RSPACK_PROFILE=ALL:包含所有的 trace event,用于较为复杂的分析,生成的 JSON 文件较大
除了预设外,其他字符串都会透传给 Env Filter,支持更复杂的过滤策略:
Tracing level filter
支持的 tracing 等级有:TRACE、DEBUG、INFO、WARN 和 ERROR。可以通过等级进行过滤:
模块级别过滤
混合过滤
EnvFilter 支持混合使用多种过滤条件,实现更复杂的过滤策略:

