@@ -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/16210846550 (2025-07-10 )
23
+ > Data from GitHub Actions: https://github.com/rspack-contrib/build-tools-performance/actions/runs/16540342624 (2025-07-26 )
24
24
25
25
### react-1k
26
26
@@ -32,27 +32,27 @@ CASE=react-1k pnpm benchmark
32
32
33
33
#### Build performance
34
34
35
- | Name | Dev cold start | Root HMR | Leaf HMR | Prod build |
36
- | --------------------------- | ------------------- | -------- | -- ------ | ---------- |
37
- | Rspack CLI 1.4.6 | 715ms (517 + 198) | 132ms | 128ms | 592ms |
38
- | Rspack CLI (Lazy) 1.4.6 | 323ms🥇 (283 + 40) | 110ms🥉 | 108ms🥉 | 590ms |
39
- | Rsbuild 1.4.6 | 595ms🥉 (438 + 157) | 104ms🥈 | 104ms🥈 | 526ms🥉 |
40
- | Rsbuild (Lazy) 1.4.6 | 519ms🥈 (369 + 149) | 96ms🥇 | 101ms🥇 | 524ms🥈 |
41
- | Vite (Rolldown + Oxc) 7.0.7 | 3298ms (93 + 3204) | 150ms | 145ms | 353ms 🥇 |
42
- | Vite (Rollup + SWC) 7.0.4 | 3379ms (110 + 3269) | 161ms | 140ms | 1858ms |
43
- | webpack (SWC) 5.100.0 | 3091ms (2494 + 597) | 327ms | 260ms | 3272ms |
35
+ | Name | Dev cold start | HMR | Prod build |
36
+ | ---------------------------- | -------------- | ------ | ---------- |
37
+ | Rspack CLI 1.4.10 | 831ms | 109ms | 621ms |
38
+ | Rspack CLI (Lazy) 1.4.10 | 386ms🥇 | 78ms🥇 | 708ms |
39
+ | Rsbuild 1.4.11 | 711ms🥉 | 89ms🥉 | 543ms🥈 |
40
+ | Rsbuild (Lazy) 1.4.11 | 575ms🥈 | 78ms🥈 | 587ms🥉 |
41
+ | Vite (Rolldown + Oxc) 7.0.11 | 4313ms | 129ms | 367ms 🥇 |
42
+ | Vite (Rollup + SWC) 7.0.6 | 3907ms | 126ms | 2369ms |
43
+ | webpack (SWC) 5.100.2 | 3663ms | 341ms | 3844ms |
44
44
45
45
#### Bundle sizes
46
46
47
- | Name | Total size | Gzipped size |
48
- | --------------------------- | ---------- | ------------ |
49
- | Rspack CLI 1.4.6 | 839.0kB🥈 | 218.6kB |
50
- | Rspack CLI (Lazy) 1.4.6 | 839.0kB🥉 | 218.6kB |
51
- | Rsbuild 1.4.6 | 870.7kB | 212.4kB 🥇 |
52
- | Rsbuild (Lazy) 1.4.6 | 870.7kB | 212.4kB 🥈 |
53
- | Vite (Rolldown + Oxc) 7.0.7 | 839.8kB | 230.8kB |
54
- | Vite (Rollup + SWC) 7.0.4 | 801.1kB 🥇 | 216.3kB 🥉 |
55
- | webpack (SWC) 5.100.0 | 883.4kB | 238.1kB |
47
+ | Name | Total size | Gzipped size |
48
+ | ---------------------------- | ---------- | ------------ |
49
+ | Rspack CLI 1.4.10 | 838.9kB🥉 | 218.5kB |
50
+ | Rspack CLI (Lazy) 1.4.10 | 838.9kB | 218.5kB |
51
+ | Rsbuild 1.4.11 | 870.6kB | 212.3kB 🥇 |
52
+ | Rsbuild (Lazy) 1.4.11 | 870.6kB | 212.3kB 🥈 |
53
+ | Vite (Rolldown + Oxc) 7.0.11 | 839.6kB | 230.7kB |
54
+ | Vite (Rollup + SWC) 7.0.6 | 798.7kB 🥇 | 215.7kB 🥉 |
55
+ | webpack (SWC) 5.100.2 | 836.0kB🥈 | 223.8kB |
56
56
57
57
### react-5k
58
58
@@ -64,27 +64,27 @@ CASE=react-5k pnpm benchmark
64
64
65
65
#### Build performance
66
66
67
- | Name | Dev cold start | Root HMR | Leaf HMR | Prod build |
68
- | --------------------------- | --------------------- | -------- | -- ------ | ---------- |
69
- | Rspack CLI 1.4.6 | 1450ms🥉 (1207 + 243) | 222ms | 149ms | 1285ms 🥈 |
70
- | Rspack CLI (Lazy) 1.4.6 | 401ms🥇 (346 + 55) | 90ms🥇 | 92ms🥈 | 1353ms🥉 |
71
- | Rsbuild 1.4.6 | 1479ms (1251 + 228) | 206ms | 156ms | 1383ms |
72
- | Rsbuild (Lazy) 1.4.6 | 506ms🥈 (369 + 137) | 100ms🥈 | 66ms🥇 | 1386ms |
73
- | Vite (Rolldown + Oxc) 7.0.7 | 2664ms (120 + 2543) | 134ms🥉 | 109ms | 842ms 🥇 |
74
- | Vite (Rollup + SWC) 7.0.4 | 2778ms (116 + 2661) | 134ms | 106ms🥉 | 4709ms |
75
- | webpack (SWC) 5.100.0 | 7461ms (6839 + 622) | 763ms | 730ms | 8901ms |
67
+ | Name | Dev cold start | HMR | Prod build |
68
+ | ---------------------------- | -------------- | ------ | ---------- |
69
+ | Rspack CLI 1.4.10 | 1580ms | 159ms | 1212ms 🥈 |
70
+ | Rspack CLI (Lazy) 1.4.10 | 352ms🥇 | 79ms🥈 | 1375ms |
71
+ | Rsbuild 1.4.11 | 1383ms🥉 | 148ms | 1533ms |
72
+ | Rsbuild (Lazy) 1.4.11 | 439ms🥈 | 66ms🥇 | 1303ms🥉 |
73
+ | Vite (Rolldown + Oxc) 7.0.11 | 2820ms | 99ms🥉 | 748ms 🥇 |
74
+ | Vite (Rollup + SWC) 7.0.6 | 2893ms | 111ms | 5287ms |
75
+ | webpack (SWC) 5.100.2 | 7354ms | 759ms | 8844ms |
76
76
77
77
#### Bundle sizes
78
78
79
- | Name | Total size | Gzipped size |
80
- | --------------------------- | ---------- | ------------ |
81
- | Rspack CLI 1.4.6 | 2846.4kB🥉 | 677.2kB🥇 |
82
- | Rspack CLI (Lazy) 1.4.6 | 2846.4kB | 677.2kB🥈 |
83
- | Rsbuild 1.4.6 | 2877.4kB | 678.5kB 🥉 |
84
- | Rsbuild (Lazy) 1.4.6 | 2877.4kB | 678.5kB |
85
- | Vite (Rolldown + Oxc) 7.0.7 | 2718.1kB 🥈 | 751.9kB |
86
- | Vite (Rollup + SWC) 7.0.4 | 2579.1kB 🥇 | 688.5kB |
87
- | webpack (SWC) 5.100.0 | 2872.1kB | 710.2kB |
79
+ | Name | Total size | Gzipped size |
80
+ | ---------------------------- | ---------- | ------------ |
81
+ | Rspack CLI 1.4.10 | 2846.4kB | 677.2kB🥇 |
82
+ | Rspack CLI (Lazy) 1.4.10 | 2846.4kB | 677.2kB🥈 |
83
+ | Rsbuild 1.4.11 | 2877.3kB | 678.4kB 🥉 |
84
+ | Rsbuild (Lazy) 1.4.11 | 2877.3kB | 678.4kB |
85
+ | Vite (Rolldown + Oxc) 7.0.11 | 2718.0kB 🥈 | 751.7kB |
86
+ | Vite (Rollup + SWC) 7.0.6 | 2576.7kB 🥇 | 687.7kB |
87
+ | webpack (SWC) 5.100.2 | 2824.8kB🥉 | 695.7kB |
88
88
89
89
### react-10k
90
90
@@ -94,29 +94,27 @@ A React app with 10,000 components and 10,000 modules from node_modules, using d
94
94
CASE=react-10k pnpm benchmark
95
95
```
96
96
97
- #### Build performance
98
-
99
- | Name | Dev cold start | Root HMR | Leaf HMR | Prod build |
100
- | --------------------------- | ---------------------- | -------- | -------- | ---------- |
101
- | Rspack CLI 1.4.6 | 2922ms🥉 (2608 + 313) | 355ms | 275ms | 2554ms🥈 |
102
- | Rspack CLI (Lazy) 1.4.6 | 398ms🥇 (346 + 52) | 120ms🥈 | 103ms🥇 | 2577ms🥉 |
103
- | Rsbuild 1.4.6 | 2979ms (2702 + 277) | 360ms | 258ms | 2934ms |
104
- | Rsbuild (Lazy) 1.4.6 | 695ms🥈 (516 + 178) | 113ms🥇 | 109ms🥈 | 2915ms |
105
- | Vite (Rolldown + Oxc) 7.0.7 | 4363ms (161 + 4202) | 171ms🥉 | 141ms | 1606ms🥇 |
106
- | Vite (Rollup + SWC) 7.0.4 | 4773ms (167 + 4606) | 174ms | 135ms🥉 | 9433ms |
107
- | webpack (SWC) 5.100.0 | 13868ms (12842 + 1026) | 3321ms | 2326ms | 17815ms |
97
+ | Name | Dev cold start | HMR | Prod build |
98
+ | ---------------------------- | -------------- | ------- | ---------- |
99
+ | Rspack CLI 1.4.10 | 2689ms🥉 | 272ms | 2597ms🥉 |
100
+ | Rspack CLI (Lazy) 1.4.10 | 448ms🥇 | 89ms🥇 | 2446ms🥈 |
101
+ | Rsbuild 1.4.11 | 3038ms | 301ms | 2876ms |
102
+ | Rsbuild (Lazy) 1.4.11 | 544ms🥈 | 89ms🥈 | 3318ms |
103
+ | Vite (Rolldown + Oxc) 7.0.11 | 4483ms | 129ms | 1562ms🥇 |
104
+ | Vite (Rollup + SWC) 7.0.6 | 5281ms | 112ms🥉 | 9913ms |
105
+ | webpack (SWC) 5.100.2 | 14464ms | 3046ms | 17570ms |
108
106
109
107
#### Bundle sizes
110
108
111
- | Name | Total size | Gzipped size |
112
- | --------------------------- | ---------- | ------------ |
113
- | Rspack CLI 1.4.6 | 5996.4kB | 1367.2kB 🥇 |
114
- | Rspack CLI (Lazy) 1.4.6 | 5996.4kB | 1367.2kB 🥈 |
115
- | Rsbuild 1.4.6 | 6054.6kB | 1367.4kB 🥉 |
116
- | Rsbuild (Lazy) 1.4.6 | 6054.6kB | 1367.4kB |
117
- | Vite (Rolldown + Oxc) 7.0.7 | 5675.8kB 🥈 | 1546.6kB |
118
- | Vite (Rollup + SWC) 7.0.4 | 5369.0kB 🥇 | 1409.2kB |
119
- | webpack (SWC) 5.100.0 | 5994.5kB 🥉 | 1464.3kB |
109
+ | Name | Total size | Gzipped size |
110
+ | ---------------------------- | ---------- | ------------ |
111
+ | Rspack CLI 1.4.10 | 5996.3kB | 1367.1kB 🥇 |
112
+ | Rspack CLI (Lazy) 1.4.10 | 5996.3kB | 1367.1kB 🥈 |
113
+ | Rsbuild 1.4.11 | 6054.6kB | 1367.3kB 🥉 |
114
+ | Rsbuild (Lazy) 1.4.11 | 6054.6kB | 1367.3kB |
115
+ | Vite (Rolldown + Oxc) 7.0.11 | 5675.7kB 🥈 | 1546.6kB |
116
+ | Vite (Rollup + SWC) 7.0.6 | 5366.6kB 🥇 | 1408.3kB |
117
+ | webpack (SWC) 5.100.2 | 5947.1kB 🥉 | 1449.1kB |
120
118
121
119
### ui-components
122
120
@@ -128,29 +126,29 @@ CASE=ui-components pnpm benchmark
128
126
129
127
#### Build performance
130
128
131
- | Name | Prod build |
132
- | --------------------------- | ---------- |
133
- | Rspack CLI 1.4.8 | 3128ms |
134
- | Rsbuild 1.4.7 | 3046ms |
135
- | Vite (Rollup + SWC) 7.0.4 | 10578ms |
136
- | Vite (Rolldown + Oxc) 7.0.9 | 1341ms🥈 |
137
- | Rolldown 1.0.0-beta.27 | 1009ms🥇 |
138
- | webpack (SWC) 5.100.2 | 11683ms |
139
- | esbuild 0.25.6 | 2013ms |
140
- | Farm 1.7.10 | 1672ms🥉 |
129
+ | Name | Prod build |
130
+ | ---------------------------- | ---------- |
131
+ | Rspack CLI 1.4.10 | 2183ms |
132
+ | Rsbuild 1.4.11 | 2948ms |
133
+ | Vite (Rollup + SWC) 7.0.6 | 11889ms |
134
+ | Vite (Rolldown + Oxc) 7.0.11 | 1542ms🥇 |
135
+ | Rolldown 1.0.0-beta.29 | 1627ms🥈 |
136
+ | webpack (SWC) 5.100.2 | 13854ms |
137
+ | esbuild 0.25.8 | 1725ms🥉 |
138
+ | Farm 1.7.10 | 2038ms |
141
139
142
140
#### Bundle sizes
143
141
144
- | Name | Total size | Gzipped size |
145
- | --------------------------- | ---------- | ------------ |
146
- | Rspack CLI 1.4.8 | 2024.0kB 🥈 | 616.4kB 🥈 |
147
- | Rsbuild 1.4.7 | 2022 .0kB🥇 | 615.9kB 🥇 |
148
- | Vite (Rollup + SWC) 7.0.4 | 2037.4kB🥉 | 638.2kB |
149
- | Vite (Rolldown + Oxc) 7.0.9 | 2054.8kB | 636.5kB |
150
- | Rolldown 1.0.0-beta.27 | 2069.3kB | 637.0kB |
151
- | webpack (SWC) 5.100.2 | 2054.2kB | 627.8kB 🥉 |
152
- | esbuild 0.25.6 | 2834.4kB | 869 .3kB |
153
- | Farm 1.7.10 | 3760.2kB | 1307.1kB |
142
+ | Name | Total size | Gzipped size |
143
+ | ---------------------------- | ---------- | ------------ |
144
+ | Rspack CLI 1.4.10 | 2027.1kB 🥈 | 617.1kB 🥈 |
145
+ | Rsbuild 1.4.11 | 2025 .0kB🥇 | 616.6kB 🥇 |
146
+ | Vite (Rollup + SWC) 7.0.6 | 2039.2kB | 638.5kB |
147
+ | Vite (Rolldown + Oxc) 7.0.11 | 2050.4kB | 635.0kB |
148
+ | Rolldown 1.0.0-beta.29 | 2064.9kB | 635.5kB |
149
+ | webpack (SWC) 5.100.2 | 2027.1kB🥉 | 618.4kB 🥉 |
150
+ | esbuild 0.25.8 | 2837.7kB | 870 .3kB |
151
+ | Farm 1.7.10 | 3764.5kB | 1309.0kB |
154
152
155
153
### rome
156
154
@@ -164,21 +162,21 @@ CASE=rome pnpm benchmark
164
162
165
163
| Name | Prod build |
166
164
| ---------------------- | ---------- |
167
- | Rspack CLI 1.4.6 | 770ms🥉 |
168
- | Rsbuild 1.4.6 | 830ms |
169
- | Rolldown 1.0.0-beta.25 | 351ms 🥈 |
170
- | webpack (SWC) 5.100.0 | 2954ms |
171
- | esbuild 0.25.6 | 232ms 🥇 |
165
+ | Rspack CLI 1.4.10 | 1327ms🥉 |
166
+ | Rsbuild 1.4.11 | 1577ms |
167
+ | Rolldown 1.0.0-beta.29 | 813ms 🥈 |
168
+ | webpack (SWC) 5.100.2 | 5594ms |
169
+ | esbuild 0.25.8 | 781ms 🥇 |
172
170
173
171
#### Bundle sizes
174
172
175
173
| Name | Total size | Gzipped size |
176
174
| ---------------------- | ---------- | ------------ |
177
- | Rspack CLI 1.4.6 | 1009.3kB🥈 | 270.9kB🥈 |
178
- | Rsbuild 1.4.6 | 1009.3kB🥉 | 270.9kB 🥉 |
179
- | Rolldown 1.0.0-beta.25 | 1016.4kB | 273.6kB |
180
- | webpack (SWC) 5.100.0 | 1007.4kB🥇 | 270.7kB 🥇 |
181
- | esbuild 0.25.6 | 1025.3kB | 276.8kB |
175
+ | Rspack CLI 1.4.10 | 1009.3kB🥈 | 270.9kB🥈 |
176
+ | Rsbuild 1.4.11 | 1009.3kB🥉 | 271.0kB 🥉 |
177
+ | Rolldown 1.0.0-beta.29 | 1016.3kB | 273.6kB |
178
+ | webpack (SWC) 5.100.2 | 1007.4kB🥇 | 270.6kB 🥇 |
179
+ | esbuild 0.25.8 | 1025.3kB | 276.7kB |
182
180
183
181
## Run locally
184
182
0 commit comments