close
logologo
指南
配置
插件
API
社区
版本
更新日志
Rsbuild 0.x 文档
English
简体中文
指南
配置
插件
API
社区
更新日志
Rsbuild 0.x 文档
English
简体中文
logologo

开始

介绍
快速上手
功能导航
名词解释

框架

React
Vue
Preact
Svelte
Solid

基础

命令行工具
开发服务器
构建产物
静态资源
HTML
JSON
Wasm
TypeScript
Web Workers
部署静态站点
升级 Rsbuild

配置

配置 Rspack
配置 Rsbuild
配置 SWC

样式

CSS
CSS Modules
CSS-in-JS
Tailwind CSS v4
Tailwind CSS v3
UnoCSS

进阶

路径别名
环境变量
模块热更新
浏览器范围
浏览器兼容性
模块联邦
多环境构建
服务端渲染(SSR)
测试

优化

代码拆分
产物体积优化
提升构建性能
静态资源内联

迁移

从 Rsbuild 0.x 迁移
webpack
Create React App
Vue CLI
Vite
Vite 插件
Modern.js Builder

调试

开启调试模式
构建性能分析
使用 Rsdoctor

常见问题

通用类问题
功能类问题
异常类问题
热更新问题
📝 在 GitHub 上编辑此页
上一页开启调试模式
下一页使用 Rsdoctor

#构建性能分析

进行构建性能分析可以帮助你确定项目中的性能瓶颈,从而采取针对性的优化。

#使用 Rsdoctor

Rsdoctor 是一个构建分析工具,能够可视化地展示各个 loaders 和 plugins 的编译耗时。

请参考 使用 Rsdoctor 了解更多。

#Node.js profiling

当 Rsbuild 执行一次构建时,会包含 JavaScript 和 Rust 两侧的代码运行开销,以及 JavaScript 和 Rust 之间的数据通信开销。

通常而言,JavaScript 侧的性能开销会大于 Rust 侧,你可以使用 Node.js 的 profiling 来分析 JS 侧的开销,这有助于发现 JS 侧的性能瓶颈。

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

# dev
node --cpu-prof ./node_modules/@rsbuild/core/bin/rsbuild.js dev

# build
node --cpu-prof ./node_modules/@rsbuild/core/bin/rsbuild.js build

# 设置更高精度的采样间隔
node --cpu-prof --cpu-prof-interval=100 ./node_modules/@rsbuild/core/bin/rsbuild.js build

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

# 安装 speedscope
npm install -g speedscope

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

#Rspack profiling

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

package.json
{
  "scripts": {
    "dev:profile": "RSPACK_PROFILE=OVERVIEW rsbuild dev",
    "build:profile": "RSPACK_PROFILE=OVERVIEW rsbuild build"
  }
}

由于 Windows 不支持上述用法,你也可以使用 cross-env 来设置环境变量,这可以确保在不同的操作系统中都能正常使用:

package.json
{
  "scripts": {
    "dev:profile": "cross-env RSPACK_PROFILE=OVERVIEW rsbuild dev",
    "build:profile": "cross-env RSPACK_PROFILE=OVERVIEW rsbuild build"
  },
  "devDependencies": {
    "cross-env": "^7.0.0"
  }
}

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

TIP
  • 在关闭 dev server 时,优先使用 CTRL + D 关闭,而不是 CTRL + C,这可以确保 Rspack 能够完整地记录性能数据。
  • 生成的 trace.json 文件体积较大,如果需要分享给他人查看,可以压缩为 zip 文件来减小体积。
  • 关于 Rspack 性能分析的更多用法,可参考 Rspack - Tracing。