Skip to content

Commit a505012

Browse files
authoredAug 29, 2023
perf(es/transforms): Remove wrong parallelism (#7889)
1 parent 3e41468 commit a505012

File tree

3 files changed

+23
-242
lines changed

3 files changed

+23
-242
lines changed
 

‎crates/swc_ecma_transforms_macros/src/parallel.rs

+5-236
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![allow(non_snake_case)]
2+
13
use pmutil::q;
24
use proc_macro2::{Span, TokenStream};
35
use syn::{Expr, Ident, ImplItem, ImplItemFn, ItemImpl, Meta, Type};
@@ -29,11 +31,9 @@ pub fn expand(attr: TokenStream, mut item: ItemImpl) -> ItemImpl {
2931
mode,
3032
"module_items",
3133
explode,
32-
100,
33-
)));
34-
item.items.push(ImplItem::Fn(make_par_visit_method(
35-
mode, "stmts", explode, 100,
3634
)));
35+
item.items
36+
.push(ImplItem::Fn(make_par_visit_method(mode, "stmts", explode)));
3737

3838
item
3939
}
@@ -85,20 +85,15 @@ fn explode_hook_method_name(explode: bool, suffix: &str) -> Option<Ident> {
8585
}
8686
}
8787

88-
fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usize) -> ImplItemFn {
88+
fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool) -> ImplItemFn {
8989
let method_name = Ident::new(&format!("{}_{}", mode.prefix(), suffix), Span::call_site());
9090
let hook = post_visit_hook(mode, suffix);
9191
let explode_method_name = explode_hook_method_name(explode, suffix);
9292

93-
let threshold = q!(Vars { threshold }, {
94-
(swc_ecma_transforms_base::perf::cpu_count() * threshold)
95-
});
96-
9793
match (mode, explode_method_name) {
9894
(Mode::Fold, Some(explode_method_name)) => q!(
9995
Vars {
10096
NodeType: node_type(suffix),
101-
threshold,
10297
method_name,
10398
hook,
10499
explode_method_name,
@@ -109,63 +104,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
109104
use swc_ecma_transforms_base::perf::{ParExplode, Parallel};
110105
use swc_ecma_visit::FoldWith;
111106

112-
#[cfg(feature = "rayon")]
113-
if nodes.len() >= threshold || option_env!("SWC_FORCE_CONCURRENT") == Some("1")
114-
{
115-
use rayon::prelude::*;
116-
117-
let (visitor, mut nodes) = ::swc_common::GLOBALS.with(|globals| {
118-
swc_ecma_transforms_base::helpers::HELPERS.with(|helpers| {
119-
HANDLER.with(|handler| {
120-
nodes
121-
.into_par_iter()
122-
.map(|node| {
123-
::swc_common::GLOBALS.set(&globals, || {
124-
swc_ecma_transforms_base::helpers::HELPERS.set(
125-
helpers,
126-
|| {
127-
HANDLER.set(handler, || {
128-
let mut visitor =
129-
Parallel::create(&*self);
130-
let node = node.fold_with(&mut visitor);
131-
let mut nodes = Vec::with_capacity(4);
132-
133-
ParExplode::explode_method_name(
134-
&mut visitor,
135-
&mut nodes,
136-
);
137-
138-
nodes.push(node);
139-
140-
(visitor, nodes)
141-
})
142-
},
143-
)
144-
})
145-
})
146-
.reduce(
147-
|| (Parallel::create(&*self), vec![]),
148-
|mut a, b| {
149-
Parallel::merge(&mut a.0, b.0);
150-
151-
a.1.extend(b.1);
152-
153-
a
154-
},
155-
)
156-
})
157-
})
158-
});
159-
160-
Parallel::merge(self, visitor);
161-
162-
{
163-
hook;
164-
}
165-
166-
return nodes;
167-
}
168-
169107
let mut buf = Vec::with_capacity(nodes.len());
170108

171109
for node in nodes {
@@ -189,7 +127,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
189127
(Mode::Fold, None) => q!(
190128
Vars {
191129
NodeType: node_type(suffix),
192-
threshold,
193130
method_name,
194131
hook,
195132
},
@@ -199,65 +136,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
199136
use swc_ecma_transforms_base::perf::Parallel;
200137
use swc_ecma_visit::FoldWith;
201138

202-
#[cfg(feature = "rayon")]
203-
if nodes.len() >= threshold || option_env!("SWC_FORCE_CONCURRENT") == Some("1")
204-
{
205-
use rayon::prelude::*;
206-
207-
let (visitor, mut nodes) = ::swc_common::GLOBALS.with(|globals| {
208-
swc_ecma_transforms_base::helpers::HELPERS.with(|helpers| {
209-
HANDLER.with(|handler| {
210-
nodes
211-
.into_par_iter()
212-
.map(|node| {
213-
::swc_common::GLOBALS.set(&globals, || {
214-
swc_ecma_transforms_base::helpers::HELPERS.set(
215-
helpers,
216-
|| {
217-
HANDLER.set(handler, || {
218-
let mut visitor =
219-
Parallel::create(&*self);
220-
let node = node.fold_with(&mut visitor);
221-
222-
(visitor, node)
223-
})
224-
},
225-
)
226-
})
227-
})
228-
.fold(
229-
|| (Parallel::create(&*self), vec![]),
230-
|mut a, b| {
231-
Parallel::merge(&mut a.0, b.0);
232-
233-
a.1.push(b.1);
234-
235-
a
236-
},
237-
)
238-
.reduce(
239-
|| (Parallel::create(&*self), vec![]),
240-
|mut a, b| {
241-
Parallel::merge(&mut a.0, b.0);
242-
243-
a.1.extend(b.1);
244-
245-
a
246-
},
247-
)
248-
})
249-
})
250-
});
251-
252-
Parallel::merge(self, visitor);
253-
254-
{
255-
hook;
256-
}
257-
258-
return nodes;
259-
}
260-
261139
let mut nodes = nodes.fold_children_with(self);
262140
{
263141
hook;
@@ -272,7 +150,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
272150
(Mode::VisitMut, Some(explode_method_name)) => q!(
273151
Vars {
274152
NodeType: node_type(suffix),
275-
threshold,
276153
method_name,
277154
hook,
278155
explode_method_name
@@ -285,66 +162,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
285162
use swc_ecma_transforms_base::perf::{ParExplode, Parallel};
286163
use swc_ecma_visit::VisitMutWith;
287164

288-
#[cfg(feature = "rayon")]
289-
if nodes.len() >= threshold || option_env!("SWC_FORCE_CONCURRENT") == Some("1")
290-
{
291-
::swc_common::GLOBALS.with(|globals| {
292-
swc_ecma_transforms_base::helpers::HELPERS.with(|helpers| {
293-
HANDLER.with(|handler| {
294-
use rayon::prelude::*;
295-
296-
let (visitor, new_nodes) = take(nodes)
297-
.into_par_iter()
298-
.map(|mut node| {
299-
::swc_common::GLOBALS.set(&globals, || {
300-
swc_ecma_transforms_base::helpers::HELPERS.set(
301-
helpers,
302-
|| {
303-
HANDLER.set(handler, || {
304-
let mut visitor =
305-
Parallel::create(&*self);
306-
node.visit_mut_with(&mut visitor);
307-
308-
let mut nodes = Vec::with_capacity(4);
309-
310-
ParExplode::explode_method_name(
311-
&mut visitor,
312-
&mut nodes,
313-
);
314-
315-
nodes.push(node);
316-
317-
(visitor, nodes)
318-
})
319-
},
320-
)
321-
})
322-
})
323-
.reduce(
324-
|| (Parallel::create(&*self), vec![]),
325-
|mut a, b| {
326-
Parallel::merge(&mut a.0, b.0);
327-
328-
a.1.extend(b.1);
329-
330-
a
331-
},
332-
);
333-
334-
Parallel::merge(self, visitor);
335-
336-
{
337-
hook;
338-
}
339-
340-
*nodes = new_nodes;
341-
})
342-
})
343-
});
344-
345-
return;
346-
}
347-
348165
let mut buf = Vec::with_capacity(nodes.len());
349166

350167
for mut node in take(nodes) {
@@ -367,7 +184,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
367184
(Mode::VisitMut, None) => q!(
368185
Vars {
369186
NodeType: node_type(suffix),
370-
threshold,
371187
method_name,
372188
hook,
373189
},
@@ -377,53 +193,6 @@ fn make_par_visit_method(mode: Mode, suffix: &str, explode: bool, threshold: usi
377193
use swc_ecma_transforms_base::perf::Parallel;
378194
use swc_ecma_visit::VisitMutWith;
379195

380-
#[cfg(feature = "rayon")]
381-
if nodes.len() >= threshold || option_env!("SWC_FORCE_CONCURRENT") == Some("1")
382-
{
383-
::swc_common::GLOBALS.with(|globals| {
384-
swc_ecma_transforms_base::helpers::HELPERS.with(|helpers| {
385-
HANDLER.with(|handler| {
386-
use rayon::prelude::*;
387-
388-
let visitor = nodes
389-
.into_par_iter()
390-
.map(|node| {
391-
::swc_common::GLOBALS.set(&globals, || {
392-
swc_ecma_transforms_base::helpers::HELPERS.set(
393-
helpers,
394-
|| {
395-
HANDLER.set(handler, || {
396-
let mut visitor =
397-
Parallel::create(&*self);
398-
node.visit_mut_with(&mut visitor);
399-
400-
visitor
401-
})
402-
},
403-
)
404-
})
405-
})
406-
.reduce(
407-
|| Parallel::create(&*self),
408-
|mut a, b| {
409-
Parallel::merge(&mut a, b);
410-
411-
a
412-
},
413-
);
414-
415-
Parallel::merge(self, visitor);
416-
417-
{
418-
hook;
419-
}
420-
})
421-
})
422-
});
423-
424-
return;
425-
}
426-
427196
nodes.visit_mut_children_with(self);
428197
{
429198
hook;

‎crates/swc_ecma_transforms_optimization/src/inline_globals.rs

+18-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ use swc_common::{
44
sync::Lrc,
55
};
66
use swc_ecma_ast::*;
7-
use swc_ecma_transforms_base::perf::Parallel;
8-
use swc_ecma_transforms_macros::parallel;
9-
use swc_ecma_utils::{collect_decls, NodeIgnoringSpan};
7+
use swc_ecma_transforms_base::perf::{ParVisitMut, Parallel};
8+
use swc_ecma_utils::{collect_decls, parallel::cpu_count, NodeIgnoringSpan};
109
use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
1110

1211
/// The key will be compared using [EqIgnoreSpan::eq_ignore_span], and matched
@@ -63,7 +62,6 @@ impl Parallel for InlineGlobals {
6362
fn merge(&mut self, _: Self) {}
6463
}
6564

66-
#[parallel]
6765
impl VisitMut for InlineGlobals {
6866
noop_visit_mut_type!();
6967

@@ -208,6 +206,22 @@ impl VisitMut for InlineGlobals {
208206

209207
script.visit_mut_children_with(self);
210208
}
209+
210+
fn visit_mut_prop_or_spreads(&mut self, n: &mut Vec<PropOrSpread>) {
211+
self.visit_mut_par(cpu_count() * 8, n);
212+
}
213+
214+
fn visit_mut_expr_or_spreads(&mut self, n: &mut Vec<ExprOrSpread>) {
215+
self.visit_mut_par(cpu_count() * 8, n);
216+
}
217+
218+
fn visit_mut_opt_vec_expr_or_spreads(&mut self, n: &mut Vec<Option<ExprOrSpread>>) {
219+
self.visit_mut_par(cpu_count() * 8, n);
220+
}
221+
222+
fn visit_mut_exprs(&mut self, n: &mut Vec<Box<Expr>>) {
223+
self.visit_mut_par(cpu_count() * 8, n);
224+
}
211225
}
212226

213227
#[cfg(test)]

‎crates/swc_ecma_transforms_optimization/src/json_parse.rs

-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use serde_json::Value;
44
use swc_common::{util::take::Take, Spanned, DUMMY_SP};
55
use swc_ecma_ast::*;
66
use swc_ecma_transforms_base::perf::Parallel;
7-
use swc_ecma_transforms_macros::parallel;
87
use swc_ecma_utils::{calc_literal_cost, member_expr, ExprFactory};
98
use swc_ecma_visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith};
109

@@ -54,7 +53,6 @@ impl Default for JsonParse {
5453
}
5554
}
5655

57-
#[parallel]
5856
impl VisitMut for JsonParse {
5957
noop_visit_mut_type!();
6058

1 commit comments

Comments
 (1)

github-actions[bot] commented on Aug 29, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: a505012 Previous: 057bd5f Ratio
es/full/bugs-1 297477 ns/iter (± 10965) 287815 ns/iter (± 7460) 1.03
es/full/minify/libraries/antd 1398844945 ns/iter (± 14485520) 1405333116 ns/iter (± 17684766) 1.00
es/full/minify/libraries/d3 291508053 ns/iter (± 6794911) 287995335 ns/iter (± 2350086) 1.01
es/full/minify/libraries/echarts 1131738893 ns/iter (± 9575779) 1132260295 ns/iter (± 13448868) 1.00
es/full/minify/libraries/jquery 86562678 ns/iter (± 486225) 86091765 ns/iter (± 501548) 1.01
es/full/minify/libraries/lodash 100129730 ns/iter (± 1116613) 99012935 ns/iter (± 795542) 1.01
es/full/minify/libraries/moment 51010459 ns/iter (± 478201) 51397756 ns/iter (± 462699) 0.99
es/full/minify/libraries/react 18230514 ns/iter (± 149057) 18405070 ns/iter (± 151662) 0.99
es/full/minify/libraries/terser 227364173 ns/iter (± 2195504) 228301801 ns/iter (± 3840616) 1.00
es/full/minify/libraries/three 413922373 ns/iter (± 7634614) 417697433 ns/iter (± 5348116) 0.99
es/full/minify/libraries/typescript 2794314118 ns/iter (± 18358894) 2792774919 ns/iter (± 24108622) 1.00
es/full/minify/libraries/victory 620937338 ns/iter (± 11534755) 628533291 ns/iter (± 14397102) 0.99
es/full/minify/libraries/vue 122158101 ns/iter (± 1049819) 123021088 ns/iter (± 1471701) 0.99
es/full/codegen/es3 33702 ns/iter (± 257) 33165 ns/iter (± 141) 1.02
es/full/codegen/es5 33696 ns/iter (± 107) 33131 ns/iter (± 124) 1.02
es/full/codegen/es2015 33812 ns/iter (± 95) 33184 ns/iter (± 129) 1.02
es/full/codegen/es2016 33968 ns/iter (± 316) 33334 ns/iter (± 97) 1.02
es/full/codegen/es2017 33887 ns/iter (± 71) 33286 ns/iter (± 61) 1.02
es/full/codegen/es2018 33813 ns/iter (± 96) 33090 ns/iter (± 44) 1.02
es/full/codegen/es2019 33753 ns/iter (± 78) 33305 ns/iter (± 93) 1.01
es/full/codegen/es2020 33655 ns/iter (± 124) 33153 ns/iter (± 88) 1.02
es/full/all/es3 176544976 ns/iter (± 4798887) 169723357 ns/iter (± 1292767) 1.04
es/full/all/es5 164547525 ns/iter (± 1268525) 161874558 ns/iter (± 1810073) 1.02
es/full/all/es2015 121872475 ns/iter (± 737998) 120811810 ns/iter (± 1226729) 1.01
es/full/all/es2016 121344645 ns/iter (± 1192114) 120303332 ns/iter (± 776693) 1.01
es/full/all/es2017 120150975 ns/iter (± 877927) 119584636 ns/iter (± 629054) 1.00
es/full/all/es2018 117796456 ns/iter (± 962178) 117450005 ns/iter (± 1285293) 1.00
es/full/all/es2019 117568178 ns/iter (± 879761) 116955547 ns/iter (± 992982) 1.01
es/full/all/es2020 113120498 ns/iter (± 1165115) 112137960 ns/iter (± 733892) 1.01
es/full/parser 495921 ns/iter (± 5888) 492966 ns/iter (± 2035) 1.01
es/full/base/fixer 20437 ns/iter (± 287) 18827 ns/iter (± 121) 1.09
es/full/base/resolver_and_hygiene 81748 ns/iter (± 187) 79267 ns/iter (± 122) 1.03
serialization of serde 292 ns/iter (± 0) 298 ns/iter (± 0) 0.98
css/minify/libraries/bootstrap 29198706 ns/iter (± 320371) 28740005 ns/iter (± 147258) 1.02
css/visitor/compare/clone 1650767 ns/iter (± 7474) 1625372 ns/iter (± 4799) 1.02
css/visitor/compare/visit_mut_span 1778853 ns/iter (± 25827) 1767248 ns/iter (± 5116) 1.01
css/visitor/compare/visit_mut_span_panic 1839667 ns/iter (± 6221) 1840393 ns/iter (± 5437) 1.00
css/visitor/compare/fold_span 2577119 ns/iter (± 9864) 2567335 ns/iter (± 8660) 1.00
css/visitor/compare/fold_span_panic 2756819 ns/iter (± 5613) 2759888 ns/iter (± 7587) 1.00
css/lexer/bootstrap_5_1_3 4536028 ns/iter (± 12104) 4739614 ns/iter (± 5411) 0.96
css/lexer/foundation_6_7_4 3821445 ns/iter (± 9154) 4003072 ns/iter (± 2757) 0.95
css/lexer/tailwind_3_1_1 727064 ns/iter (± 2204) 758103 ns/iter (± 364) 0.96
css/parser/bootstrap_5_1_3 19671719 ns/iter (± 83332) 20122062 ns/iter (± 65793) 0.98
css/parser/foundation_6_7_4 15971035 ns/iter (± 84846) 16307797 ns/iter (± 66607) 0.98
css/parser/tailwind_3_1_1 3051732 ns/iter (± 4189) 3095110 ns/iter (± 6547) 0.99
es/codegen/colors 735376 ns/iter (± 401796) 739064 ns/iter (± 404414) 1.00
es/codegen/large 2895004 ns/iter (± 1539681) 2908646 ns/iter (± 1544284) 1.00
es/codegen/with-parser/colors 45714 ns/iter (± 196) 46026 ns/iter (± 268) 0.99
es/codegen/with-parser/large 498816 ns/iter (± 2061) 486760 ns/iter (± 1005) 1.02
es/minify/libraries/antd 1264643417 ns/iter (± 16902280) 1232615667 ns/iter (± 18043789) 1.03
es/minify/libraries/d3 250490428 ns/iter (± 3142805) 251051130 ns/iter (± 3289775) 1.00
es/minify/libraries/echarts 975192760 ns/iter (± 14266798) 981963423 ns/iter (± 10311379) 0.99
es/minify/libraries/jquery 74265223 ns/iter (± 253313) 74353751 ns/iter (± 410082) 1.00
es/minify/libraries/lodash 88760099 ns/iter (± 937073) 87953562 ns/iter (± 482501) 1.01
es/minify/libraries/moment 43984194 ns/iter (± 255345) 43894674 ns/iter (± 371826) 1.00
es/minify/libraries/react 16266274 ns/iter (± 95282) 16136784 ns/iter (± 63938) 1.01
es/minify/libraries/terser 193229619 ns/iter (± 3665810) 191599196 ns/iter (± 1257174) 1.01
es/minify/libraries/three 341510027 ns/iter (± 4055733) 347421795 ns/iter (± 4275590) 0.98
es/minify/libraries/typescript 2398415308 ns/iter (± 32814533) 2371200388 ns/iter (± 13370068) 1.01
es/minify/libraries/victory 532936504 ns/iter (± 17963060) 553106533 ns/iter (± 10445384) 0.96
es/minify/libraries/vue 108720328 ns/iter (± 1376453) 107824115 ns/iter (± 495724) 1.01
es/visitor/compare/clone 1986174 ns/iter (± 14529) 1972811 ns/iter (± 5874) 1.01
es/visitor/compare/visit_mut_span 2287172 ns/iter (± 6834) 2269732 ns/iter (± 4139) 1.01
es/visitor/compare/visit_mut_span_panic 2346820 ns/iter (± 8016) 2335052 ns/iter (± 5610) 1.01
es/visitor/compare/fold_span 3407033 ns/iter (± 9811) 3381241 ns/iter (± 9053) 1.01
es/visitor/compare/fold_span_panic 3488177 ns/iter (± 11927) 3493071 ns/iter (± 26708) 1.00
es/lexer/colors 13464 ns/iter (± 9) 13191 ns/iter (± 7) 1.02
es/lexer/angular 6187749 ns/iter (± 17697) 6190702 ns/iter (± 10914) 1.00
es/lexer/backbone 807953 ns/iter (± 1019) 798967 ns/iter (± 490) 1.01
es/lexer/jquery 4535882 ns/iter (± 6972) 4552658 ns/iter (± 5039) 1.00
es/lexer/jquery mobile 6975531 ns/iter (± 4962) 6926308 ns/iter (± 15745) 1.01
es/lexer/mootools 3615533 ns/iter (± 1692) 3643830 ns/iter (± 2179) 0.99
es/lexer/underscore 678868 ns/iter (± 501) 671500 ns/iter (± 737) 1.01
es/lexer/three 21692944 ns/iter (± 16878) 21648251 ns/iter (± 37165) 1.00
es/lexer/yui 3879550 ns/iter (± 1300) 3855283 ns/iter (± 1639) 1.01
es/parser/colors 26960 ns/iter (± 49) 26971 ns/iter (± 335) 1.00
es/parser/angular 13637983 ns/iter (± 99145) 13530814 ns/iter (± 116957) 1.01
es/parser/backbone 2002899 ns/iter (± 9680) 1999112 ns/iter (± 8170) 1.00
es/parser/jquery 11014451 ns/iter (± 80191) 10988565 ns/iter (± 118622) 1.00
es/parser/jquery mobile 16911159 ns/iter (± 184167) 16836081 ns/iter (± 137904) 1.00
es/parser/mootools 8433070 ns/iter (± 15215) 8405121 ns/iter (± 115296) 1.00
es/parser/underscore 1728877 ns/iter (± 8928) 1723843 ns/iter (± 9267) 1.00
es/parser/three 49380201 ns/iter (± 445900) 48989760 ns/iter (± 185514) 1.01
es/parser/yui 8365280 ns/iter (± 57138) 8337543 ns/iter (± 35080) 1.00
es/preset-env/usage/builtin_type 135384 ns/iter (± 31917) 135988 ns/iter (± 32019) 1.00
es/preset-env/usage/property 16919 ns/iter (± 47) 17612 ns/iter (± 45) 0.96
es/resolver/typescript 92078170 ns/iter (± 820174) 92669509 ns/iter (± 1044287) 0.99
es/fixer/typescript 67860675 ns/iter (± 458961) 67931120 ns/iter (± 580792) 1.00
es/hygiene/typescript 139170069 ns/iter (± 1391180) 136437261 ns/iter (± 1578472) 1.02
es/resolver_with_hygiene/typescript 252690247 ns/iter (± 3092534) 258642255 ns/iter (± 2793839) 0.98
es/visitor/base-perf/module_clone 59539 ns/iter (± 218) 59283 ns/iter (± 159) 1.00
es/visitor/base-perf/fold_empty 63235 ns/iter (± 140) 62734 ns/iter (± 214) 1.01
es/visitor/base-perf/fold_noop_impl_all 63104 ns/iter (± 408) 62892 ns/iter (± 246) 1.00
es/visitor/base-perf/fold_noop_impl_vec 63503 ns/iter (± 215) 63489 ns/iter (± 285) 1.00
es/visitor/base-perf/boxing_boxed_clone 57 ns/iter (± 0) 58 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed_clone 40 ns/iter (± 0) 39 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_boxed 111 ns/iter (± 0) 111 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 75 ns/iter (± 0) 77 ns/iter (± 0) 0.97
es/visitor/base-perf/visit_empty 0 ns/iter (± 0) 0 ns/iter (± 0) NaN
es/visitor/base-perf/visit_contains_this 2620 ns/iter (± 11) 2623 ns/iter (± 12) 1.00
es/base/parallel/resolver/typescript 4457074707 ns/iter (± 278566843) 3756472490 ns/iter (± 253991238) 1.19
es/base/parallel/hygiene/typescript 1509050251 ns/iter (± 20435881) 1501538904 ns/iter (± 20778417) 1.01
misc/visitors/time-complexity/time 5 120 ns/iter (± 1) 135 ns/iter (± 1) 0.89
misc/visitors/time-complexity/time 10 393 ns/iter (± 7) 396 ns/iter (± 14) 0.99
misc/visitors/time-complexity/time 15 678 ns/iter (± 6) 720 ns/iter (± 1) 0.94
misc/visitors/time-complexity/time 20 1047 ns/iter (± 3) 1065 ns/iter (± 9) 0.98
misc/visitors/time-complexity/time 40 4129 ns/iter (± 295) 4108 ns/iter (± 5) 1.01
misc/visitors/time-complexity/time 60 8781 ns/iter (± 3) 8765 ns/iter (± 15) 1.00
es/full-target/es2016 228086 ns/iter (± 505) 227316 ns/iter (± 437) 1.00
es/full-target/es2017 217976 ns/iter (± 591) 218741 ns/iter (± 630) 1.00
es/full-target/es2018 206450 ns/iter (± 1008) 207324 ns/iter (± 1049) 1.00
es2020_nullish_coalescing 71108 ns/iter (± 402) 70532 ns/iter (± 440) 1.01
es2020_optional_chaining 82086 ns/iter (± 257) 82639 ns/iter (± 261) 0.99
es2022_class_properties 114480 ns/iter (± 411) 114889 ns/iter (± 606) 1.00
es2018_object_rest_spread 75172 ns/iter (± 354) 75185 ns/iter (± 195) 1.00
es2019_optional_catch_binding 65533 ns/iter (± 183) 64767 ns/iter (± 149) 1.01
es2017_async_to_generator 65654 ns/iter (± 182) 65105 ns/iter (± 306) 1.01
es2016_exponentiation 67168 ns/iter (± 409) 66166 ns/iter (± 157) 1.02
es2015_arrow 72333 ns/iter (± 277) 71836 ns/iter (± 221) 1.01
es2015_block_scoped_fn 68875 ns/iter (± 223) 68618 ns/iter (± 232) 1.00
es2015_block_scoping 120401 ns/iter (± 449) 119942 ns/iter (± 496) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.