构建性能分析
进行构建性能分析可以帮助你确定项目中的性能瓶颈,从而采取针对性的优化。
使用 Rsdoctor
Rsdoctor 是一个构建分析工具,能够可视化地展示各个 loaders 和 plugins 的编译耗时。
请参考 使用 Rsdoctor 了解更多。
Node.js profiling
当 Rsbuild 执行一次构建时,会包含 JavaScript 和 Rust 两侧的代码运行开销,以及 JavaScript 和 Rust 之间的数据通信开销。
可以使用 Node.js profiling 定位 JavaScript 侧的耗时,包括 loader 和插件。要分析 Rspack 的 Rust 执行过程,请使用下方的 Rspack profiling 流程。两者的耗时占比取决于具体项目。
例如,进行 CPU profiling 分析,在项目根目录执行以下命令:
以上命令执行后会生成一个 *.cpuprofile 文件,我们可以使用 speedscope 来可视化查看该文件:
Rspack profiling
Rsbuild 支持使用 RSPACK_PROFILE 环境变量来对 Rspack 进行构建性能分析。
由于 Windows 不支持上述用法,你也可以使用 cross-env 来设置环境变量,这可以确保在不同的操作系统中都能正常使用:
默认情况下,Rspack 会使用 logger trace layer,并将 profile 输出到项目根目录下的 .rspack-profile-${timestamp}-${pid}/rspack.log。当 RSPACK_TRACE_OUTPUT 是相对文件路径时,它会解析到生成的 .rspack-profile-${timestamp}-${pid} 目录下;绝对路径会按原样使用。如果需要输出到终端,请显式设置 RSPACK_TRACE_OUTPUT=stdout 或 RSPACK_TRACE_OUTPUT=stderr。
- 在关闭 dev server 时,优先使用
CTRL + D关闭,而不是CTRL + C,这可以确保 Rspack 能够完整地记录性能数据。 - 关于 Rspack 性能分析的更多用法,可参考 Rspack - Tracing。

