Skip to content

Commit da072e5

Browse files
committed
chore: add bench case for cached source
1 parent 542aef3 commit da072e5

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

benches/bench.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,41 @@ fn benchmark_replace_large_minified_source(b: &mut Bencher) {
197197
});
198198
}
199199

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+
200235
fn benchmark_concat_generate_string_with_cache_as_key(b: &mut Bencher) {
201236
let sms_minify = SourceMapSource::new(SourceMapSourceOptions {
202237
value: HELLOWORLD_MIN_JS,
@@ -278,6 +313,10 @@ fn bench_rspack_sources(criterion: &mut Criterion) {
278313
"concat_generate_string_as_key",
279314
benchmark_concat_generate_string_as_key,
280315
);
316+
group.bench_function(
317+
"source_for_replace_large_minified_source_with_cache",
318+
benchmark_source_for_replace_large_minified_source_with_cache,
319+
);
281320
group.finish();
282321
}
283322

0 commit comments

Comments
 (0)