@@ -20,7 +20,7 @@ Benchmark comparing JavaScript bundlers and build tools ([Rspack](https://github
20
20
21
21
## Results
22
22
23
- > Data from GitHub Actions: https://github.com/rspack-contrib/build-tools-performance/actions/runs/16665265886 (2025-08-01 )
23
+ > Data from GitHub Actions: https://github.com/rspack-contrib/build-tools-performance/actions/runs/16882999686 (2025-08-11 )
24
24
25
25
### react-1k
26
26
@@ -30,15 +30,15 @@ A React app with 1,000 components and 1,500 modules from node_modules, using dyn
30
30
CASE=react-1k pnpm benchmark
31
31
```
32
32
33
- | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
34
- | ---------------------------- | -------------- | ------- | ---------- | ---------- | ------------ |
35
- | Rspack CLI 1.4.11 | 761ms | 114ms | 602ms | 838.9kB🥉 | 218.5kB |
36
- | Rspack CLI (Lazy) 1.4.11 | 390ms 🥇 | 102ms🥇 | 596ms | 838.9kB | 218.5kB |
37
- | Rsbuild 1.4.12 | 561ms🥉 | 106ms🥈 | 523ms 🥈 | 870.6kB | 212.3kB 🥇 |
38
- | Rsbuild (Lazy) 1.4.12 | 511ms🥈 | 106ms🥉 | 528ms 🥉 | 870.6kB | 212.3kB 🥈 |
39
- | Vite (Rolldown + Oxc) 7.0.12 | 3427ms | 148ms | 392ms 🥇 | 839.6kB | 230.7kB |
40
- | Vite (Rollup + SWC) 7.0.6 | 3442ms | 131ms | 1895ms | 798.7kB 🥇 | 215.7kB🥉 |
41
- | webpack (SWC) 5.101.0 | 3047ms | 307ms | 2523ms | 836.0kB🥈 | 224.2kB |
33
+ | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
34
+ | ------------------------------ | -------------- | ------- | ---------- | ---------- | ------------ |
35
+ | Rspack CLI 1.5.0-beta.0 | 793ms | 123ms | 591ms | 838.9kB🥉 | 218.5kB |
36
+ | Rspack CLI (Lazy) 1.5.0-beta.0 | 435ms 🥇 | 89ms🥇 | 573ms | 838.9kB | 218.5kB |
37
+ | Rsbuild 1.5.0-beta.0 | 552ms🥈 | 102ms🥉 | 464ms 🥈 | 870.6kB | 212.4kB 🥇 |
38
+ | Rsbuild (Lazy) 1.5.0-beta.0 | 599ms🥉 | 95ms🥈 | 472ms 🥉 | 870.6kB | 212.4kB 🥈 |
39
+ | Vite (Rolldown + Oxc) 7.1.0 | 4123ms | 158ms | 385ms 🥇 | 839.7kB | 230.8kB |
40
+ | Vite (Rollup + SWC) 7.1.1 | 3532ms | 152ms | 1842ms | 798.8kB 🥇 | 215.7kB🥉 |
41
+ | webpack (SWC) 5.101.0 | 3107ms | 303ms | 2467ms | 836.0kB🥈 | 223.6kB |
42
42
43
43
### react-5k
44
44
@@ -48,15 +48,15 @@ A React app with 5,000 components and 5,000 modules from node_modules, using dyn
48
48
CASE=react-5k pnpm benchmark
49
49
```
50
50
51
- | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
52
- | ---------------------------- | -------------- | ------- | ---------- | ---------- | ------------ |
53
- | Rspack CLI 1.4.11 | 2700ms 🥉 | 254ms | 1967ms | 2846.4kB | 677.2kB 🥇 |
54
- | Rspack CLI (Lazy) 1.4.11 | 538ms 🥇 | 68ms 🥇 | 1870ms🥉 | 2846.4kB | 677.2kB 🥈 |
55
- | Rsbuild 1.4.12 | 2831ms | 229ms | 1883ms | 2877.3kB | 678.4kB🥉 |
56
- | Rsbuild (Lazy) 1.4.12 | 618ms 🥈 | 68ms🥈 | 1864ms🥈 | 2877.3kB | 678.4kB |
57
- | Vite (Rolldown + Oxc) 7.0.12 | 5243ms | 106ms🥉 | 1499ms 🥇 | 2718.0kB🥈 | 751.7kB |
58
- | Vite (Rollup + SWC) 7.0.6 | 5878ms | 122ms | 6673ms | 2576.7kB🥇 | 687.7kB |
59
- | webpack (SWC) 5.101.0 | 10443ms | 1774ms | 9588ms | 2824.7kB 🥉 | 695.4kB |
51
+ | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
52
+ | ------------------------------ | -------------- | ------- | ---------- | ---------- | ------------ |
53
+ | Rspack CLI 1.5.0-beta.0 | 1881ms 🥉 | 202ms | 1465ms🥈 | 2846.4kB | 677.1kB 🥇 |
54
+ | Rspack CLI (Lazy) 1.5.0-beta.0 | 721ms 🥇 | 93ms 🥇 | 1622ms | 2846.4kB | 677.1kB 🥈 |
55
+ | Rsbuild 1.5.0-beta.0 | 1948ms | 199ms | 1638ms | 2877.4kB | 678.4kB🥉 |
56
+ | Rsbuild (Lazy) 1.5.0-beta.0 | 773ms 🥈 | 101ms🥉 | 1534ms🥉 | 2877.4kB | 678.4kB |
57
+ | Vite (Rolldown + Oxc) 7.1.0 | 4227ms | 120ms | 1105ms 🥇 | 2718.0kB🥈 | 751.7kB |
58
+ | Vite (Rollup + SWC) 7.1.1 | 4041ms | 99ms🥈 | 5972ms | 2576.7kB🥇 | 687.7kB |
59
+ | webpack (SWC) 5.101.0 | 11502ms | 1067ms | 7268ms | 2824.8kB 🥉 | 695.8kB |
60
60
61
61
### react-10k
62
62
@@ -66,15 +66,15 @@ A React app with 10,000 components and 10,000 modules from node_modules, using d
66
66
CASE=react-10k pnpm benchmark
67
67
```
68
68
69
- | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
70
- | ---------------------------- | -------------- | ------- | ---------- | ---------- | ------------ |
71
- | Rspack CLI 1.4.11 | 6875ms🥉 | 924ms | 6129ms | 5996.3kB | 1367.1kB 🥇 |
72
- | Rspack CLI (Lazy) 1.4.11 | 1548ms🥈 | 339ms | 6042ms | 5996.3kB | 1367.1kB 🥈 |
73
- | Rsbuild 1.4.12 | 9176ms | 702ms | 5093ms🥈 | 6054.6kB | 1367.3kB 🥉 |
74
- | Rsbuild (Lazy) 1.4.12 | 1517ms🥇 | 161ms🥉 | 6026ms🥉 | 6054.6kB | 1367.3kB |
75
- | Vite (Rolldown + Oxc) 7.0.12 | 13444ms | 130ms🥈 | 3299ms 🥇 | 5675.7kB🥈 | 1546.6kB |
76
- | Vite (Rollup + SWC) 7.0.6 | 11575ms | 122ms🥇 | 21748ms | 5366.6kB🥇 | 1408.3kB |
77
- | webpack (SWC) 5.101.0 | 35630ms | 9240ms | 26044ms | 5947.1kB🥉 | 1449.3kB |
69
+ | Name | Dev cold start | HMR | Prod build | Total size | Gzipped size |
70
+ | ------------------------------ | -------------- | ------- | ---------- | ---------- | ------------ |
71
+ | Rspack CLI 1.5.0-beta.0 | 4401ms | 432ms | 2971ms🥉 | 5996.2kB | 1367.0kB 🥇 |
72
+ | Rspack CLI (Lazy) 1.5.0-beta.0 | 524ms🥇 | 103ms🥈 | 2734ms🥈 | 5996.2kB | 1367.0kB 🥈 |
73
+ | Rsbuild 1.5.0-beta.0 | 3792ms🥉 | 417ms | 3603ms | 6054.4kB | 1367.2kB 🥉 |
74
+ | Rsbuild (Lazy) 1.5.0-beta.0 | 741ms🥈 | 98ms🥇 | 3389ms | 6054.4kB | 1367.2kB |
75
+ | Vite (Rolldown + Oxc) 7.1.0 | 6101ms | 148ms | 2117ms 🥇 | 5675.7kB🥈 | 1546.6kB |
76
+ | Vite (Rollup + SWC) 7.1.1 | 4828ms | 140ms🥉 | 9669ms | 5366.6kB🥇 | 1408.3kB |
77
+ | webpack (SWC) 5.101.0 | 16865ms | 3651ms | 13413ms | 5947.1kB🥉 | 1450.0kB |
78
78
79
79
### ui-components
80
80
@@ -86,16 +86,16 @@ Including [@mui/material](https://npmjs.com/package/@mui/material), [antd](https
86
86
CASE=ui-components pnpm benchmark
87
87
```
88
88
89
- | Name | Prod build | Total size | Gzipped size |
90
- | ---------------------------- | ---------- | ---------- | ------------ |
91
- | Rspack CLI 1.4.11 | 4290ms | 2027.9kB 🥈 | 617.5kB 🥈 |
92
- | Rsbuild 1.4.12 | 4155ms | 2025.9kB 🥇 | 617.0kB 🥇 |
93
- | Vite (Rollup + SWC) 7.0.6 | 13491ms | 2040.1kB | 638.9kB |
94
- | Vite (Rolldown + Oxc) 7.0.12 | 1902ms🥈 | 2051.3kB | 635.3kB |
95
- | Rolldown 1.0.0-beta.30 | 1609ms🥇 | 2065.8kB | 635.9kB |
96
- | webpack (SWC) 5.101.0 | 16774ms | 2028.0kB 🥉 | 618.8kB 🥉 |
97
- | esbuild 0.25.8 | 2785ms 🥉 | 2838.6kB | 870.7kB |
98
- | Farm 1.7.10 | 2940ms | 3765.7kB | 1312.6kB |
89
+ | Name | Prod build | Total size | Gzipped size |
90
+ | --------------------------- | ---------- | ---------- | ------------ |
91
+ | Rspack CLI 1.5.0-beta.0 | 4871ms | 2030.6kB 🥈 | 618.3kB 🥈 |
92
+ | Rsbuild 1.5.0-beta.0 | 5450ms | 2028.5kB 🥇 | 617.8kB 🥇 |
93
+ | Vite (Rollup + SWC) 7.1.1 | 19229ms | 2043.5kB | 640.3kB |
94
+ | Vite (Rolldown + Oxc) 7.1.0 | 2668ms🥇 | 2053.0kB | 635.6kB |
95
+ | Rolldown 1.0.0-beta.32 | 2885ms🥈 | 2067.6kB | 636.1kB |
96
+ | webpack (SWC) 5.101.0 | 20034ms | 2030.6kB 🥉 | 619.5kB 🥉 |
97
+ | esbuild 0.25.8 | 3159ms 🥉 | 2846.5kB | 873.4kB |
98
+ | Farm 1.7.11 | 3711ms | 3768.8kB | 1312.5kB |
99
99
100
100
### rome
101
101
@@ -105,13 +105,13 @@ A complex TypeScript Node.js project that includes multiple packages from the [r
105
105
CASE=rome pnpm benchmark
106
106
```
107
107
108
- | Name | Prod build | Total size | Gzipped size |
109
- | ---------------------- | ---------- | ---------- | ------------ |
110
- | Rspack CLI 1.4.11 | 1640ms | 1009.3kB🥈 | 270.9kB🥈 |
111
- | Rsbuild 1.4.12 | 1389ms 🥉 | 1009.3kB🥉 | 271.0kB🥉 |
112
- | Rolldown 1.0.0-beta.30 | 550ms 🥈 | 1016.3kB | 273.6kB |
113
- | webpack (SWC) 5.101.0 | 5279ms | 1007.4kB🥇 | 270.6kB🥇 |
114
- | esbuild 0.25.8 | 398ms 🥇 | 1025.3kB | 276.7kB |
108
+ | Name | Prod build | Total size | Gzipped size |
109
+ | ----------------------- | ---------- | ---------- | ------------ |
110
+ | Rspack CLI 1.5.0-beta.0 | 1156ms | 1009.3kB🥈 | 270.9kB🥈 |
111
+ | Rsbuild 1.5.0-beta.0 | 1048ms 🥉 | 1009.3kB🥉 | 271.0kB🥉 |
112
+ | Rolldown 1.0.0-beta.32 | 580ms 🥈 | 1015.2kB | 272.8kB |
113
+ | webpack (SWC) 5.101.0 | 4332ms | 1007.4kB🥇 | 270.6kB🥇 |
114
+ | esbuild 0.25.8 | 340ms 🥇 | 1025.3kB | 276.7kB |
115
115
116
116
## Run locally
117
117
0 commit comments