构建性能分析

进行性能分析可以帮助你识别项目中的性能瓶颈,从而进行有针对性的优化。

使用 Rsdoctor

Rsdoctor 是一个构建分析工具,可以直观地显示每个 Loader 和 Plugin 的编译时间。

请参阅使用 Rsdoctor 以获取更多信息。

Rspack profiling

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

# dev
RSPACK_PROFILE=OVERVIEW rspeedy dev

# build
RSPACK_PROFILE=OVERVIEW rspeedy build

当 build 命令执行完成,或是 dev server 被关闭时,Rspeedy 会在当前目录下生成一个 .rspack-profile-${timestamp}-${pid} 文件夹,其中包含 trace.json 文件,该文件由 Rspack 基于 tracing 细粒度地记录了各个阶段的耗时,可以使用 ui.perfetto.dev 进行查看。

有关 Rspack 构建性能分析使用的更多信息,请参阅 Rspack - Tracing

Node.js profiling

当 Rspeedy 执行一次构建时,你可以使用 Node.js 的 profiling 来分析 JavaScript 执行,这有助于发现性能瓶颈。

例如,进行 CPU profiling 分析,在项目根目录执行以下命令:

#dev
node --cpu-prof ./node_modules/@lynx-js/rspeedy/bin/rspeedy.js dev

# build
node --cpu-prof ./node_modules/@lynx-js/rspeedy/bin/rspeedy.js build

以上命令执行后会生成一个 *.cpuprofile 文件,我们可以使用 speedscope 来可视化查看该文件:

# 安装 speedscope
npm install -g speedscope

# 查看 cpuprofile 内容
# 请将文件名替换为本地文件的名称
speedscope CPU.date.000000.00000.0.001.cpuprofile