进行构建性能分析可以帮助你确定项目中的性能瓶颈,从而采取针对性的优化。
Rsdoctor 是一个构建分析工具,能够可视化地展示各个 loaders 和 plugins 的编译耗时。
请参考 使用 Rsdoctor 了解更多。
通常而言,JS 侧的性能开销会大于 Rust 侧的性能开销,你可以使用 Node.js Profiling 分析 JS 侧的开销。
在项目根目录执行以下命令:
以上命令执行后会生成一个 cpuprofile 文件,我们可以使用 speedscope 来可视化查看该文件:
Rsbuild 支持使用 RSPACK_PROFILE
环境变量来对 Rspack 进行构建性能分析。
在项目根目录执行以下命令:
执行该命令后会在当前产物目录下生成一个 rspack-profile-${timestamp}
文件夹,该文件夹下会包含 logging.json
、trace.json
和 jscpuprofile.json
三个文件:
trace.json
:使用 tracing 细粒度地记录了 Rust 侧各个阶段的耗时,可以使用 ui.perfetto.dev 进行查看。jscpuprofile.json
:使用 Node.js inspector 细粒度地记录了 JavaScript 侧的各个阶段的耗时,可以使用 speedscope.app 进行查看。logging.json
:包含一些日志信息,粗粒度地记录了构建的各个阶段耗时 (开发环境下暂不支持)。更多 Rspack 构建性能分析用法,可参考 Rspack - Profiling。