rolldown/benchmarks

127

stars

600

commits

JavaScript

primary language

Sep 9, 2026

updated

Browse cluster: Node.js Module Resolution

README

Rolldown Benchmark

Source apps

  • Apps containing a mix of React JSX components and plain JS from node_modules, with total modules ranging from 2.4k to 19k:
    • apps/1000: 2413 modules(1000 JSX components + 1413 JS modules in node_modules)
    • apps/3000: 5714 modules(3000 JSX components + 2714 JS modules in node_modules)
    • apps/5000: 9014 modules(5000 JSX components + 4014 JS modules in node_modules)
    • apps/10000: 19014 modules(10000 JSX components + 9014 JS modules in node_modules)
  • The original esbuild three10x benchmark
  • rome based on https://github.com/rome/tools/tree/archived-js, total 1195 typescript file

Configuration

All tools are configured to use a minimal configuration that:

  • enables production mode
    • enables minification
    • enables sourcemaps
  • disables gzip

How to run

  1. Install deps with pnpm install in workspace root
  2. cd to the apps you want to benchmark, e.g. apps/10000
  3. An individual tool's benchmark can be run via its corresponding npm script in that app.
  4. We recommend running the benchmarks with node --run or bun run to minimize package manager script runner overhead, and use hyperfine for comparing across tools:
hyperfine --warmup 1 --runs 3 \
  'node --run build:rolldown' \
  'node --run build:esbuild' \
  'node --run build:rspack'

Result Variance

Due to different native languages and architectural differences, the results may have heavy variance depending on what operating system and hardware you are using the run the benchmarks. This is why we recommend you run the benchmark on your own system to determine the number's relevance to your daily work.

Reference Results

Notes

  • The following results are run on specific system / hardware and may not match results on different systems. They are for reference only. We strongly recommend you run it on systems close to your work environment.

  • Included tools are publishing new versions with improvements constantly. While we try our best to update them periodically, numbers published here are not guaranteed to be always up-to-date.

  • Results are automatically updated via GitHub Actions CI running on Ubuntu, macOS, and Windows runners whenever a tool is updated.

Benchmark Results for apps/10000

Ubuntu Latest (updated 2026-08-23)

ToolVersionTime (mean ± σ)ComparisonJSCSSSourcemaps
bun1.4.0551.59 ± 40.20 ms1.0x5.09 MBnot found12.31 MB
rolldown1.2.51032.11 ± 20.69 ms1.9x4.97 MBnot found12.90 MB
esbuild0.28.21137.59 ± 17.20 ms2.1x5.65 MB38 B14.10 MB
vite8.2.21445.34 ± 14.68 ms2.6x4.95 MB1 B12.73 MB
rspack2.1.102241.83 ± 53.44 ms4.1x4.93 MBnot found12.09 MB
rsbuild2.1.132494.98 ± 38.32 ms4.5x4.93 MBnot found11.92 MB
rollup4.62.538095.32 ± 308.91 ms69.1x5.08 MBnot found12.30 MB

macOS Latest (updated 2026-08-23)

ToolVersionTime (mean ± σ)ComparisonJSCSSSourcemaps
bun1.4.0419.99 ± 29.38 ms1.0x5.09 MBnot found12.31 MB
rolldown1.2.51217.41 ± 351.33 ms2.9x4.97 MBnot found12.90 MB
esbuild0.28.21226.66 ± 142.46 ms2.9x5.65 MB38 B14.10 MB
vite8.2.21413.14 ± 160.37 ms3.4x4.95 MB1 B12.73 MB
rspack2.1.102038.21 ± 211.84 ms4.9x4.93 MBnot found12.09 MB
rsbuild2.1.132474.39 ± 467.55 ms5.9x4.93 MBnot found11.92 MB
rollup4.62.541306.20 ± 5788.14 ms98.4x5.08 MBnot found12.30 MB

Windows Latest (updated 2026-08-23)

ToolVersionTime (mean ± σ)ComparisonJSCSSSourcemaps
bun1.4.01603.62 ± 32.90 ms1.0x5.09 MBnot found12.73 MB
rolldown1.2.52409.29 ± 16.63 ms1.5x4.97 MBnot found13.33 MB
esbuild0.28.22664.49 ± 107.67 ms1.7x5.65 MB38 B14.52 MB
vite8.2.23298.98 ± 80.61 ms2.1x4.95 MB1 B13.15 MB
rspack2.1.105158.46 ± 66.72 ms3.2x4.93 MBnot found12.51 MB
rsbuild2.1.135702.74 ± 60.52 ms3.6x4.93 MBnot found12.34 MB
rollup4.62.5130731.81 ± 4561.07 ms81.5x5.08 MBnot found12.67 MB

Contributors

renovate[bot]

445 commits

Boshen

58 commits

IWANABETHATGUY

53 commits

yyx990803

13 commits

rolldown/benchmarks

127

stars

600

commits

JavaScript

primary language

Sep 9, 2026

updated

Browse cluster: Node.js Module Resolution

README

Rolldown Benchmark

Source apps

  • Apps containing a mix of React JSX components and plain JS from node_modules, with total modules ranging from 2.4k to 19k:
    • apps/1000: 2413 modules(1000 JSX components + 1413 JS modules in node_modules)
    • apps/3000: 5714 modules(3000 JSX components + 2714 JS modules in node_modules)
    • apps/5000: 9014 modules(5000 JSX components + 4014 JS modules in node_modules)
    • apps/10000: 19014 modules(10000 JSX components + 9014 JS modules in node_modules)
  • The original esbuild three10x benchmark
  • rome based on https://github.com/rome/tools/tree/archived-js, total 1195 typescript file

Configuration

All tools are configured to use a minimal configuration that:

  • enables production mode
    • enables minification
    • enables sourcemaps
  • disables gzip

How to run

  1. Install deps with pnpm install in workspace root
  2. cd to the apps you want to benchmark, e.g. apps/10000
  3. An individual tool's benchmark can be run via its corresponding npm script in that app.
  4. We recommend running the benchmarks with node --run or bun run to minimize package manager script runner overhead, and use hyperfine for comparing across tools:
hyperfine --warmup 1 --runs 3 \
  'node --run build:rolldown' \
  'node --run build:esbuild' \
  'node --run build:rspack'

Result Variance

Due to different native languages and architectural differences, the results may have heavy variance depending on what operating system and hardware you are using the run the benchmarks. This is why we recommend you run the benchmark on your own system to determine the number's relevance to your daily work.

Reference Results

Notes

  • The following results are run on specific system / hardware and may not match results on different systems. They are for reference only. We strongly recommend you run it on systems close to your work environment.

  • Included tools are publishing new versions with improvements constantly. While we try our best to update them periodically, numbers published here are not guaranteed to be always up-to-date.

  • Results are automatically updated via GitHub Actions CI running on Ubuntu, macOS, and Windows runners whenever a tool is updated.

Benchmark Results for apps/10000

Ubuntu Latest (updated 2026-08-23)

ToolVersionTime (mean ± σ)ComparisonJSCSSSourcemaps
bun1.4.0551.59 ± 40.20 ms1.0x5.09 MBnot found12.31 MB
rolldown1.2.51032.11 ± 20.69 ms1.9x4.97 MBnot found12.90 MB
esbuild0.28.21137.59 ± 17.20 ms2.1x5.65 MB38 B14.10 MB
vite8.2.21445.34 ± 14.68 ms2.6x4.95 MB1 B12.73 MB
rspack2.1.102241.83 ± 53.44 ms4.1x4.93 MBnot found12.09 MB
rsbuild2.1.132494.98 ± 38.32 ms4.5x4.93 MBnot found11.92 MB
rollup4.62.538095.32 ± 308.91 ms69.1x5.08 MBnot found12.30 MB

macOS Latest (updated 2026-08-23)

ToolVersionTime (mean ± σ)ComparisonJSCSSSourcemaps
bun1.4.0419.99 ± 29.38 ms1.0x5.09 MBnot found12.31 MB
rolldown1.2.51217.41 ± 351.33 ms2.9x4.97 MBnot found12.90 MB
esbuild0.28.21226.66 ± 142.46 ms2.9x5.65 MB38 B14.10 MB
vite8.2.21413.14 ± 160.37 ms3.4x4.95 MB1 B12.73 MB
rspack2.1.102038.21 ± 211.84 ms4.9x4.93 MBnot found12.09 MB
rsbuild2.1.132474.39 ± 467.55 ms5.9x4.93 MBnot found11.92 MB
rollup4.62.541306.20 ± 5788.14 ms98.4x5.08 MBnot found12.30 MB

Windows Latest (updated 2026-08-23)

ToolVersionTime (mean ± σ)ComparisonJSCSSSourcemaps
bun1.4.01603.62 ± 32.90 ms1.0x5.09 MBnot found12.73 MB
rolldown1.2.52409.29 ± 16.63 ms1.5x4.97 MBnot found13.33 MB
esbuild0.28.22664.49 ± 107.67 ms1.7x5.65 MB38 B14.52 MB
vite8.2.23298.98 ± 80.61 ms2.1x4.95 MB1 B13.15 MB
rspack2.1.105158.46 ± 66.72 ms3.2x4.93 MBnot found12.51 MB
rsbuild2.1.135702.74 ± 60.52 ms3.6x4.93 MBnot found12.34 MB
rollup4.62.5130731.81 ± 4561.07 ms81.5x5.08 MBnot found12.67 MB

Contributors

renovate[bot]

445 commits

Boshen

58 commits

IWANABETHATGUY

53 commits

yyx990803

13 commits

Languages

JavaScript

86.3%

TypeScript

13.7%