Skip to content

Commit

Permalink
perf(es): Use &dyn Comments for jsx and TypeScript (#7490)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 5, 2023
1 parent 47dc78f commit abd62bc
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
8 changes: 4 additions & 4 deletions crates/swc/src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,7 @@ impl Options {
// keep_import_assertions is false.
Optional::new(import_assertions(), !keep_import_assertions),
Optional::new(
typescript::strip_with_jsx(
typescript::strip_with_jsx::<Option<&dyn Comments>>(
cm.clone(),
typescript::Config {
pragma: Some(
Expand All @@ -800,7 +800,7 @@ impl Options {
import_export_assign_config,
..Default::default()
},
comments,
comments.map(|v| v as _),
top_level_mark
),
syntax.typescript()
Expand All @@ -809,9 +809,9 @@ impl Options {
custom_before_pass(&program),
// handle jsx
Optional::new(
react::react(
react::react::<&dyn Comments>(
cm.clone(),
comments,
comments.map(|v| v as _),
transform.react,
top_level_mark,
unresolved_mark
Expand Down
2 changes: 1 addition & 1 deletion crates/swc_ecma_transforms_typescript/src/strip.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ pub fn strip_with_config(config: Config, top_level_mark: Mark) -> impl Fold + Vi
chain!(
as_folder(Strip {
config,
comments: NoopComments,
comments: Option::<NoopComments>::None,
jsx: None,
top_level_ctxt: SyntaxContext::empty().apply_mark(top_level_mark),
ts_enum_lit: ts_enum_lit.clone(),
Expand Down

1 comment on commit abd62bc

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: abd62bc Previous: 2c3ac68 Ratio
es/full/bugs-1 302238 ns/iter (± 8097) 364981 ns/iter (± 15018) 0.83
es/full/minify/libraries/antd 1468405283 ns/iter (± 12541374) 1927043697 ns/iter (± 34587273) 0.76
es/full/minify/libraries/d3 305526431 ns/iter (± 3829339) 376398559 ns/iter (± 5159631) 0.81
es/full/minify/libraries/echarts 1199607844 ns/iter (± 11863609) 1536528154 ns/iter (± 15555770) 0.78
es/full/minify/libraries/jquery 96048543 ns/iter (± 258278) 112695037 ns/iter (± 1157036) 0.85
es/full/minify/libraries/lodash 109188484 ns/iter (± 342571) 132864311 ns/iter (± 1397864) 0.82
es/full/minify/libraries/moment 55919206 ns/iter (± 193527) 64340867 ns/iter (± 419707) 0.87
es/full/minify/libraries/react 20154134 ns/iter (± 47688) 23009712 ns/iter (± 196493) 0.88
es/full/minify/libraries/terser 248126924 ns/iter (± 1598990) 303686124 ns/iter (± 3323378) 0.82
es/full/minify/libraries/three 423145001 ns/iter (± 2488718) 542628693 ns/iter (± 6319696) 0.78
es/full/minify/libraries/typescript 2967218932 ns/iter (± 14822010) 3685984444 ns/iter (± 37025014) 0.81
es/full/minify/libraries/victory 633379234 ns/iter (± 5786548) 837825709 ns/iter (± 11893399) 0.76
es/full/minify/libraries/vue 138503967 ns/iter (± 561807) 163806273 ns/iter (± 1475238) 0.85
es/full/codegen/es3 35384 ns/iter (± 116) 39166 ns/iter (± 100) 0.90
es/full/codegen/es5 35466 ns/iter (± 108) 39313 ns/iter (± 50) 0.90
es/full/codegen/es2015 35416 ns/iter (± 159) 39299 ns/iter (± 74) 0.90
es/full/codegen/es2016 35636 ns/iter (± 112) 39377 ns/iter (± 73) 0.90
es/full/codegen/es2017 35570 ns/iter (± 162) 39300 ns/iter (± 45) 0.91
es/full/codegen/es2018 35570 ns/iter (± 167) 39313 ns/iter (± 50) 0.90
es/full/codegen/es2019 35316 ns/iter (± 61) 39286 ns/iter (± 68) 0.90
es/full/codegen/es2020 35322 ns/iter (± 138) 39310 ns/iter (± 40) 0.90
es/full/all/es3 184182353 ns/iter (± 361042) 203762814 ns/iter (± 3165192) 0.90
es/full/all/es5 172913981 ns/iter (± 1113317) 198045136 ns/iter (± 3260018) 0.87
es/full/all/es2015 129648524 ns/iter (± 574745) 154108321 ns/iter (± 2244056) 0.84
es/full/all/es2016 128656125 ns/iter (± 808065) 154284378 ns/iter (± 2364210) 0.83
es/full/all/es2017 127942158 ns/iter (± 457440) 154308955 ns/iter (± 2021716) 0.83
es/full/all/es2018 126314171 ns/iter (± 585944) 151997468 ns/iter (± 2254596) 0.83
es/full/all/es2019 125792129 ns/iter (± 366176) 150061473 ns/iter (± 2828837) 0.84
es/full/all/es2020 119854420 ns/iter (± 754497) 144975666 ns/iter (± 1305340) 0.83
es/full/parser 524775 ns/iter (± 7668) 594087 ns/iter (± 12008) 0.88
es/full/base/fixer 18203 ns/iter (± 173) 24295 ns/iter (± 79) 0.75
es/full/base/resolver_and_hygiene 93170 ns/iter (± 272) 104395 ns/iter (± 589) 0.89
serialization of serde 317 ns/iter (± 0) 279 ns/iter (± 0) 1.14
css/minify/libraries/bootstrap 31425253 ns/iter (± 213532) 35956579 ns/iter (± 178991) 0.87
css/visitor/compare/clone 1905318 ns/iter (± 14057) 2390355 ns/iter (± 8851) 0.80
css/visitor/compare/visit_mut_span 2018039 ns/iter (± 7001) 2592147 ns/iter (± 21480) 0.78
css/visitor/compare/visit_mut_span_panic 2085050 ns/iter (± 7326) 2635429 ns/iter (± 6533) 0.79
css/visitor/compare/fold_span 2781616 ns/iter (± 15143) 3331643 ns/iter (± 26456) 0.83
css/visitor/compare/fold_span_panic 3003702 ns/iter (± 24896) 3504519 ns/iter (± 17687) 0.86
css/lexer/bootstrap_5_1_3 4767618 ns/iter (± 2723) 5484839 ns/iter (± 88528) 0.87
css/lexer/foundation_6_7_4 4018453 ns/iter (± 6942) 4662177 ns/iter (± 9643) 0.86
css/lexer/tailwind_3_1_1 759223 ns/iter (± 285) 881352 ns/iter (± 430) 0.86
css/parser/bootstrap_5_1_3 20424140 ns/iter (± 45834) 23871940 ns/iter (± 141119) 0.86
css/parser/foundation_6_7_4 16429677 ns/iter (± 37180) 19025987 ns/iter (± 105976) 0.86
css/parser/tailwind_3_1_1 3175367 ns/iter (± 4001) 3639636 ns/iter (± 6596) 0.87
es/codegen/colors 731851 ns/iter (± 398151) 732021 ns/iter (± 392439) 1.00
es/codegen/large 3139884 ns/iter (± 1661270) 3076021 ns/iter (± 1599632) 1.02
es/codegen/with-parser/colors 48224 ns/iter (± 219) 56206 ns/iter (± 312) 0.86
es/codegen/with-parser/large 510047 ns/iter (± 625) 564473 ns/iter (± 1304) 0.90
es/minify/libraries/antd 1281091118 ns/iter (± 14235964) 1755653659 ns/iter (± 11595490) 0.73
es/minify/libraries/d3 262491683 ns/iter (± 1083405) 331513322 ns/iter (± 5623410) 0.79
es/minify/libraries/echarts 1024590712 ns/iter (± 6256375) 1348262497 ns/iter (± 16821471) 0.76
es/minify/libraries/jquery 82467727 ns/iter (± 211118) 98721679 ns/iter (± 839408) 0.84
es/minify/libraries/lodash 97654679 ns/iter (± 222784) 118619544 ns/iter (± 856748) 0.82
es/minify/libraries/moment 48342948 ns/iter (± 100705) 56616370 ns/iter (± 274715) 0.85
es/minify/libraries/react 17764788 ns/iter (± 43283) 20698981 ns/iter (± 152936) 0.86
es/minify/libraries/terser 210131855 ns/iter (± 813822) 265454915 ns/iter (± 5033068) 0.79
es/minify/libraries/three 353854685 ns/iter (± 2739777) 479328927 ns/iter (± 6641703) 0.74
es/minify/libraries/typescript 2526922700 ns/iter (± 9465837) 3209463612 ns/iter (± 15863456) 0.79
es/minify/libraries/victory 532083478 ns/iter (± 2450025) 724018968 ns/iter (± 11244147) 0.73
es/minify/libraries/vue 122644409 ns/iter (± 670338) 146715906 ns/iter (± 984482) 0.84
es/visitor/compare/clone 2062383 ns/iter (± 4757) 2407782 ns/iter (± 9770) 0.86
es/visitor/compare/visit_mut_span 2403596 ns/iter (± 7754) 2782604 ns/iter (± 4908) 0.86
es/visitor/compare/visit_mut_span_panic 2450083 ns/iter (± 9301) 2820128 ns/iter (± 6203) 0.87
es/visitor/compare/fold_span 3486590 ns/iter (± 6194) 3909046 ns/iter (± 7894) 0.89
es/visitor/compare/fold_span_panic 3615621 ns/iter (± 7901) 4038768 ns/iter (± 11328) 0.90
es/lexer/colors 13108 ns/iter (± 88) 14108 ns/iter (± 23) 0.93
es/lexer/angular 6146464 ns/iter (± 6520) 6711748 ns/iter (± 2822) 0.92
es/lexer/backbone 803176 ns/iter (± 164) 828315 ns/iter (± 431) 0.97
es/lexer/jquery 4544887 ns/iter (± 13167) 4680801 ns/iter (± 2914) 0.97
es/lexer/jquery mobile 6985274 ns/iter (± 15466) 7191067 ns/iter (± 5393) 0.97
es/lexer/mootools 3568618 ns/iter (± 1006) 3664429 ns/iter (± 11018) 0.97
es/lexer/underscore 673521 ns/iter (± 891) 685881 ns/iter (± 442) 0.98
es/lexer/three 21238552 ns/iter (± 52017) 21991684 ns/iter (± 16371) 0.97
es/lexer/yui 4040308 ns/iter (± 5346) 4165510 ns/iter (± 1277) 0.97
es/parser/colors 29396 ns/iter (± 30) 32869 ns/iter (± 79) 0.89
es/parser/angular 14513286 ns/iter (± 64379) 16750293 ns/iter (± 172461) 0.87
es/parser/backbone 2151631 ns/iter (± 11181) 2384056 ns/iter (± 11241) 0.90
es/parser/jquery 11792217 ns/iter (± 75929) 13054140 ns/iter (± 148654) 0.90
es/parser/jquery mobile 17863373 ns/iter (± 75299) 20530559 ns/iter (± 480062) 0.87
es/parser/mootools 8981537 ns/iter (± 20370) 9861563 ns/iter (± 43644) 0.91
es/parser/underscore 1862987 ns/iter (± 9645) 2031540 ns/iter (± 11847) 0.92
es/parser/three 49871070 ns/iter (± 518505) 60904178 ns/iter (± 252420) 0.82
es/parser/yui 9016118 ns/iter (± 35621) 10027011 ns/iter (± 56912) 0.90
es/preset-env/usage/builtin_type 146085 ns/iter (± 31832) 150717 ns/iter (± 33165) 0.97
es/preset-env/usage/property 20277 ns/iter (± 68) 29034 ns/iter (± 84) 0.70
es/resolver/typescript 94445272 ns/iter (± 855319) 133824973 ns/iter (± 4657376) 0.71
es/fixer/typescript 67770333 ns/iter (± 586058) 90637576 ns/iter (± 749811) 0.75
es/hygiene/typescript 143843791 ns/iter (± 1150161) 209252749 ns/iter (± 1304501) 0.69
es/resolver_with_hygiene/typescript 305384592 ns/iter (± 1970091) 429729940 ns/iter (± 2219968) 0.71
es/visitor/base-perf/module_clone 63352 ns/iter (± 236) 81503 ns/iter (± 747) 0.78
es/visitor/base-perf/fold_empty 65676 ns/iter (± 345) 91201 ns/iter (± 541) 0.72
es/visitor/base-perf/fold_noop_impl_all 65553 ns/iter (± 287) 91132 ns/iter (± 515) 0.72
es/visitor/base-perf/fold_noop_impl_vec 66433 ns/iter (± 237) 91373 ns/iter (± 431) 0.73
es/visitor/base-perf/boxing_boxed_clone 55 ns/iter (± 0) 60 ns/iter (± 0) 0.92
es/visitor/base-perf/boxing_unboxed_clone 40 ns/iter (± 0) 44 ns/iter (± 0) 0.91
es/visitor/base-perf/boxing_boxed 112 ns/iter (± 0) 106 ns/iter (± 0) 1.06
es/visitor/base-perf/boxing_unboxed 80 ns/iter (± 0) 82 ns/iter (± 0) 0.98
es/visitor/base-perf/visit_empty 0 ns/iter (± 0)
es/visitor/base-perf/visit_contains_this 2656 ns/iter (± 21) 3542 ns/iter (± 86) 0.75
es/base/parallel/resolver/typescript 4640960270 ns/iter (± 275637197) 7124374009 ns/iter (± 480659178) 0.65
es/base/parallel/hygiene/typescript 1589343834 ns/iter (± 8326421) 2406080737 ns/iter (± 20887156) 0.66
misc/visitors/time-complexity/time 5 110 ns/iter (± 2) 104 ns/iter (± 0) 1.06
misc/visitors/time-complexity/time 10 295 ns/iter (± 12) 336 ns/iter (± 7) 0.88
misc/visitors/time-complexity/time 15 567 ns/iter (± 35) 664 ns/iter (± 20) 0.85
misc/visitors/time-complexity/time 20 1091 ns/iter (± 0) 1271 ns/iter (± 38) 0.86
misc/visitors/time-complexity/time 40 4013 ns/iter (± 7) 6621 ns/iter (± 38) 0.61
misc/visitors/time-complexity/time 60 8479 ns/iter (± 14) 17144 ns/iter (± 136) 0.49
es/full-target/es2016 240335 ns/iter (± 708) 267627 ns/iter (± 580) 0.90
es/full-target/es2017 226150 ns/iter (± 768) 257724 ns/iter (± 394) 0.88
es/full-target/es2018 214363 ns/iter (± 3363) 246707 ns/iter (± 439) 0.87
es2020_nullish_coalescing 71756 ns/iter (± 500) 95828 ns/iter (± 303) 0.75
es2020_optional_chaining 100205 ns/iter (± 583) 128425 ns/iter (± 320) 0.78
es2022_class_properties 121208 ns/iter (± 224) 154139 ns/iter (± 377) 0.79
es2018_object_rest_spread 76562 ns/iter (± 243) 97131 ns/iter (± 264) 0.79
es2019_optional_catch_binding 64712 ns/iter (± 160) 85453 ns/iter (± 198) 0.76
es2017_async_to_generator 64268 ns/iter (± 236) 86580 ns/iter (± 612) 0.74
es2016_exponentiation 70514 ns/iter (± 273) 92505 ns/iter (± 176) 0.76
es2015_arrow 73360 ns/iter (± 279) 95816 ns/iter (± 192) 0.77
es2015_block_scoped_fn 70512 ns/iter (± 191) 93545 ns/iter (± 196) 0.75
es2015_block_scoping 135737 ns/iter (± 372) 180913 ns/iter (± 160) 0.75

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

Please sign in to comment.