@@ -197,6 +197,41 @@ fn benchmark_replace_large_minified_source(b: &mut Bencher) {
197
197
} ) ;
198
198
}
199
199
200
+ fn benchmark_source_for_replace_large_minified_source_with_cache ( b : & mut Bencher ) {
201
+ let antd_minify = SourceMapSource :: new ( SourceMapSourceOptions {
202
+ value : ANTD_MIN_JS ,
203
+ name : "antd.min.js" ,
204
+ source_map : SourceMap :: from_json ( ANTD_MIN_JS_MAP ) . unwrap ( ) ,
205
+ original_source : None ,
206
+ inner_source_map : None ,
207
+ remove_original_source : false ,
208
+ } ) ;
209
+ let mut replace_source = ReplaceSource :: new ( antd_minify) ;
210
+ replace_source. replace ( 107 , 114 , "exports" , None ) ;
211
+ replace_source. replace ( 130 , 143 , "'object'" , None ) ;
212
+ replace_source. replace ( 165 , 172 , "__webpack_require__" , None ) ;
213
+ replace_source
. replace ( 173 , 180 , "/*! react */\" ./node_modules/.pnpm/[email protected] /node_modules/react/index.js\" " , None ) ;
214
+ replace_source. replace ( 183 , 190 , "__webpack_require__" , None ) ;
215
+ replace_source
. replace ( 191 , 202 , "/*! react-dom */\" ./node_modules/.pnpm/[email protected] [email protected] /node_modules/react-dom/index.js\" " , None ) ;
216
+ replace_source. replace ( 205 , 212 , "__webpack_require__" , None ) ;
217
+ replace_source
. replace ( 213 , 220 , "/*! dayjs */\" ./node_modules/.pnpm/[email protected] /node_modules/dayjs/dayjs.min.js\" " , None ) ;
218
+ replace_source. replace ( 363 , 370 , "exports" , None ) ;
219
+ replace_source. replace ( 373 , 385 , "exports.antd" , None ) ;
220
+ replace_source. replace ( 390 , 397 , "__webpack_require__" , None ) ;
221
+ replace_source
. replace ( 398 , 405 , "/*! react */\" ./node_modules/.pnpm/[email protected] /node_modules/react/index.js\" " , None ) ;
222
+ replace_source. replace ( 408 , 415 , "__webpack_require__" , None ) ;
223
+ replace_source
. replace ( 416 , 427 , "/*! react-dom */\" ./node_modules/.pnpm/[email protected] [email protected] /node_modules/react-dom/index.js\" " , None ) ;
224
+ replace_source. replace ( 430 , 437 , "__webpack_require__" , None ) ;
225
+ replace_source
. replace ( 438 , 445 , "/*! dayjs */\" ./node_modules/.pnpm/[email protected] /node_modules/dayjs/dayjs.min.js\" " , None ) ;
226
+ replace_source. replace ( 494 , 498 , "this" , None ) ;
227
+
228
+ let cached = CachedSource :: new ( replace_source. boxed ( ) ) ;
229
+
230
+ b. iter ( || {
231
+ cached. source ( ) ;
232
+ } ) ;
233
+ }
234
+
200
235
fn benchmark_concat_generate_string_with_cache_as_key ( b : & mut Bencher ) {
201
236
let sms_minify = SourceMapSource :: new ( SourceMapSourceOptions {
202
237
value : HELLOWORLD_MIN_JS ,
@@ -278,6 +313,10 @@ fn bench_rspack_sources(criterion: &mut Criterion) {
278
313
"concat_generate_string_as_key" ,
279
314
benchmark_concat_generate_string_as_key,
280
315
) ;
316
+ group. bench_function (
317
+ "source_for_replace_large_minified_source_with_cache" ,
318
+ benchmark_source_for_replace_large_minified_source_with_cache,
319
+ ) ;
281
320
group. finish ( ) ;
282
321
}
283
322
0 commit comments