性能分析

Rspack Profile

Rspack CLI 支持使用 RSPACK_PROFILE 环境变量来进行构建性能分析。

$ RSPACK_PROFILE=ALL rspack build

执行该命令后会在当前目录下生成一个 .rspack-profile-${timestamp}-${pid} 文件夹,该文件夹下会包含 logging.jsontrace.jsonjscpuprofile.json 三个文件

  • trace.json:使用 tracing 细粒度地记录了 Rust 侧各个阶段的耗时,可以使用 ui.perfetto.dev 进行查看
  • jscpuprofile.json:使用 Node.js inspector 细粒度地记录了 JavaScript 侧的各个阶段的耗时,可以使用 speedscope.app 进行查看
  • logging.json:包含一些日志信息,粗粒度地记录了构建的各个阶段耗时

Rsdoctor 的编译分析

你可以通过使用 Rsdoctor 来查看 Loader 和 Plugin 的编译耗时及编译过程。

Loader Timeline

如果想要分析 Loader 和 Plugin 耗时或者 Loader 的编译行为,可以利用 Rsdoctor 来查看:

image

您可以在时间轴中查看每个 Loader 的执行时间以及编译的文件,以及这个 Loader 编译文件所花费的时间。

参考 Loader Timeline.

Loader Details

如果你想查看 Loader 对代码编译过程,那么可以利用 Loader Details 功能:

image

在这个报告页面中,你可以查看到 Loader 对每个文件的编译前后的代码的变化。

参考 Loader Details.

开启编译耗时分析

关于如何启用 RsdoctorRspackPlugin,可以参考 使用 Rsdoctor

  • RsdoctorRspackPluginfeatures.loaderfeatures.plugins 参数需要为 truefeatures.loaderfeatures.plugins 是默认开启的。查看参数文档Rsdoctor options
  • 使用文档: