Skip to content

Commit

Permalink
chore(es/parser): Reduce pre-allocation to reduce memory usage (#6979)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #6966.
  • Loading branch information
IWANABETHATGUY committed Feb 22, 2023
1 parent 6496796 commit f1e7a2a
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion crates/swc_ecma_parser/src/parser/expr.rs
Expand Up @@ -712,7 +712,7 @@ impl<I: Tokens> Parser<I> {
expect!(p, '(');

let mut first = true;
let mut expr_or_spreads = Vec::with_capacity(8);
let mut expr_or_spreads = Vec::with_capacity(2);

while !eof!(p) && !is!(p, ')') {
if first {
Expand Down

1 comment on commit f1e7a2a

@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: f1e7a2a Previous: a27ffd2 Ratio
es/full/bugs-1 319124 ns/iter (± 9884) 325146 ns/iter (± 6947) 0.98
es/full/minify/libraries/antd 1816191457 ns/iter (± 10545538) 1843151403 ns/iter (± 44259201) 0.99
es/full/minify/libraries/d3 348426979 ns/iter (± 10579789) 341921716 ns/iter (± 9386370) 1.02
es/full/minify/libraries/echarts 1391004990 ns/iter (± 10134679) 1412904518 ns/iter (± 22791119) 0.98
es/full/minify/libraries/jquery 98902408 ns/iter (± 1274635) 94880874 ns/iter (± 1852947) 1.04
es/full/minify/libraries/lodash 113391829 ns/iter (± 1400507) 112572737 ns/iter (± 1786690) 1.01
es/full/minify/libraries/moment 55998264 ns/iter (± 604802) 55978963 ns/iter (± 1198392) 1.00
es/full/minify/libraries/react 20230606 ns/iter (± 230643) 20102130 ns/iter (± 124730) 1.01
es/full/minify/libraries/terser 276924804 ns/iter (± 3590042) 281480053 ns/iter (± 8273546) 0.98
es/full/minify/libraries/three 507574596 ns/iter (± 5007173) 501644874 ns/iter (± 20305275) 1.01
es/full/minify/libraries/typescript 3346808868 ns/iter (± 48454365) 3387777702 ns/iter (± 30066067) 0.99
es/full/minify/libraries/victory 779253791 ns/iter (± 13075467) 780968290 ns/iter (± 26309340) 1.00
es/full/minify/libraries/vue 146145770 ns/iter (± 2536364) 144137069 ns/iter (± 3031433) 1.01
es/full/codegen/es3 26796 ns/iter (± 323) 26140 ns/iter (± 148) 1.03
es/full/codegen/es5 26810 ns/iter (± 86) 26103 ns/iter (± 46) 1.03
es/full/codegen/es2015 26847 ns/iter (± 51) 26129 ns/iter (± 39) 1.03
es/full/codegen/es2016 26850 ns/iter (± 71) 26082 ns/iter (± 41) 1.03
es/full/codegen/es2017 26975 ns/iter (± 48) 26083 ns/iter (± 64) 1.03
es/full/codegen/es2018 26841 ns/iter (± 46) 26111 ns/iter (± 50) 1.03
es/full/codegen/es2019 26808 ns/iter (± 32) 26156 ns/iter (± 72) 1.02
es/full/codegen/es2020 26837 ns/iter (± 79) 26119 ns/iter (± 58) 1.03
es/full/all/es3 177004430 ns/iter (± 2862217) 178209925 ns/iter (± 3681003) 0.99
es/full/all/es5 165671731 ns/iter (± 3007440) 168542642 ns/iter (± 1809683) 0.98
es/full/all/es2015 134169168 ns/iter (± 1938983) 131808685 ns/iter (± 1823238) 1.02
es/full/all/es2016 130368999 ns/iter (± 2688843) 130739662 ns/iter (± 1647339) 1.00
es/full/all/es2017 129971539 ns/iter (± 2844180) 129498453 ns/iter (± 3526529) 1.00
es/full/all/es2018 126022078 ns/iter (± 2214580) 124981879 ns/iter (± 1476519) 1.01
es/full/all/es2019 127113923 ns/iter (± 2656535) 124419314 ns/iter (± 1531695) 1.02
es/full/all/es2020 119686102 ns/iter (± 957085) 119908070 ns/iter (± 1973090) 1.00
es/full/parser 544859 ns/iter (± 9588) 545883 ns/iter (± 10284) 1.00
es/full/base/fixer 22038 ns/iter (± 54) 22335 ns/iter (± 35) 0.99
es/full/base/resolver_and_hygiene 82324 ns/iter (± 582) 83007 ns/iter (± 67) 0.99
serialization of ast node 122 ns/iter (± 0) 121 ns/iter (± 0) 1.01
serialization of serde 126 ns/iter (± 0) 127 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 29615617 ns/iter (± 262722) 29192967 ns/iter (± 279350) 1.01
css/visitor/compare/clone 2185416 ns/iter (± 28277) 2109700 ns/iter (± 17549) 1.04
css/visitor/compare/visit_mut_span 2419510 ns/iter (± 23782) 2279929 ns/iter (± 15016) 1.06
css/visitor/compare/visit_mut_span_panic 2499851 ns/iter (± 34983) 2322253 ns/iter (± 8901) 1.08
css/visitor/compare/fold_span 3339155 ns/iter (± 71640) 3090147 ns/iter (± 30746) 1.08
css/visitor/compare/fold_span_panic 3428022 ns/iter (± 51029) 3246335 ns/iter (± 30783) 1.06
css/lexer/bootstrap_5_1_3 5179075 ns/iter (± 2387) 5213822 ns/iter (± 4564) 0.99
css/lexer/foundation_6_7_4 4355357 ns/iter (± 1203) 4377410 ns/iter (± 1012) 0.99
css/lexer/tailwind_3_1_1 829657 ns/iter (± 1640) 833469 ns/iter (± 299) 1.00
css/parser/bootstrap_5_1_3 22193237 ns/iter (± 85463) 22714346 ns/iter (± 230704) 0.98
css/parser/foundation_6_7_4 17760499 ns/iter (± 91153) 17874787 ns/iter (± 196373) 0.99
css/parser/tailwind_3_1_1 3344050 ns/iter (± 3045) 3348199 ns/iter (± 2982) 1.00
es/codegen/colors 322703 ns/iter (± 180358) 333987 ns/iter (± 185460) 0.97
es/codegen/large 1258620 ns/iter (± 634982) 1049106 ns/iter (± 519077) 1.20
es/codegen/with-parser/colors 48105 ns/iter (± 315) 48389 ns/iter (± 382) 0.99
es/codegen/with-parser/large 533943 ns/iter (± 1989) 530059 ns/iter (± 1458) 1.01
es/minify/libraries/antd 1559716006 ns/iter (± 14977139) 1625848608 ns/iter (± 29272132) 0.96
es/minify/libraries/d3 288165505 ns/iter (± 6418781) 287283240 ns/iter (± 8613338) 1.00
es/minify/libraries/echarts 1201514193 ns/iter (± 14426656) 1240825757 ns/iter (± 18866024) 0.97
es/minify/libraries/jquery 83360825 ns/iter (± 1802411) 83681007 ns/iter (± 1357609) 1.00
es/minify/libraries/lodash 100535353 ns/iter (± 1219734) 101703936 ns/iter (± 1880282) 0.99
es/minify/libraries/moment 47863518 ns/iter (± 244985) 48142238 ns/iter (± 607721) 0.99
es/minify/libraries/react 17829580 ns/iter (± 135527) 17730210 ns/iter (± 217836) 1.01
es/minify/libraries/terser 235721460 ns/iter (± 2440573) 244159722 ns/iter (± 5935451) 0.97
es/minify/libraries/three 419586748 ns/iter (± 6570965) 432762905 ns/iter (± 18470144) 0.97
es/minify/libraries/typescript 2810844938 ns/iter (± 17196685) 2948206252 ns/iter (± 26384264) 0.95
es/minify/libraries/victory 657977031 ns/iter (± 6680169) 705052707 ns/iter (± 16381999) 0.93
es/minify/libraries/vue 124311885 ns/iter (± 1590100) 126526639 ns/iter (± 1861874) 0.98
es/visitor/compare/clone 2527561 ns/iter (± 40817) 2490116 ns/iter (± 28878) 1.02
es/visitor/compare/visit_mut_span 2993986 ns/iter (± 51253) 2889738 ns/iter (± 26210) 1.04
es/visitor/compare/visit_mut_span_panic 3055733 ns/iter (± 32557) 2926944 ns/iter (± 30666) 1.04
es/visitor/compare/fold_span 4192138 ns/iter (± 68683) 4080252 ns/iter (± 62542) 1.03
es/visitor/compare/fold_span_panic 4384272 ns/iter (± 40849) 4215038 ns/iter (± 86354) 1.04
es/lexer/colors 17271 ns/iter (± 344) 17424 ns/iter (± 192) 0.99
es/lexer/angular 8239712 ns/iter (± 4715) 8275357 ns/iter (± 3808) 1.00
es/lexer/backbone 1078981 ns/iter (± 1032) 1080957 ns/iter (± 1840) 1.00
es/lexer/jquery 5950005 ns/iter (± 3145) 5977075 ns/iter (± 7739) 1.00
es/lexer/jquery mobile 9205772 ns/iter (± 5973) 9228013 ns/iter (± 4950) 1.00
es/lexer/mootools 4664796 ns/iter (± 5299) 4682737 ns/iter (± 2884) 1.00
es/lexer/underscore 899807 ns/iter (± 1717) 898434 ns/iter (± 279) 1.00
es/lexer/three 27794642 ns/iter (± 46809) 28092736 ns/iter (± 33022) 0.99
es/lexer/yui 5055648 ns/iter (± 3024) 5081817 ns/iter (± 5485) 0.99
es/parser/colors 30542 ns/iter (± 53) 31350 ns/iter (± 178) 0.97
es/parser/angular 16309040 ns/iter (± 277578) 17193298 ns/iter (± 420797) 0.95
es/parser/backbone 2337965 ns/iter (± 19105) 2354334 ns/iter (± 10128) 0.99
es/parser/jquery 13106008 ns/iter (± 145635) 13179214 ns/iter (± 284983) 0.99
es/parser/jquery mobile 20643442 ns/iter (± 199545) 22019571 ns/iter (± 518902) 0.94
es/parser/mootools 9744003 ns/iter (± 87805) 9905712 ns/iter (± 77384) 0.98
es/parser/underscore 1971869 ns/iter (± 11407) 1995928 ns/iter (± 13435) 0.99
es/parser/three 60602998 ns/iter (± 284194) 62727156 ns/iter (± 526671) 0.97
es/parser/yui 9827417 ns/iter (± 125563) 10075355 ns/iter (± 124544) 0.98
es/preset-env/usage/builtin_type 139724 ns/iter (± 30613) 140484 ns/iter (± 31515) 0.99
es/preset-env/usage/property 21198 ns/iter (± 86) 21277 ns/iter (± 124) 1.00
es/resolver/typescript 123767744 ns/iter (± 2385365) 125522849 ns/iter (± 5827791) 0.99
es/fixer/typescript 98633557 ns/iter (± 1003729) 97534543 ns/iter (± 856317) 1.01
es/hygiene/typescript 208313113 ns/iter (± 2159494) 212947198 ns/iter (± 4585569) 0.98
es/resolver_with_hygiene/typescript 365293465 ns/iter (± 3415141) 357224764 ns/iter (± 6916445) 1.02
es/visitor/base-perf/module_clone 76366 ns/iter (± 2143) 77033 ns/iter (± 1200) 0.99
es/visitor/base-perf/fold_empty 86171 ns/iter (± 984) 86765 ns/iter (± 1189) 0.99
es/visitor/base-perf/fold_noop_impl_all 86894 ns/iter (± 992) 87130 ns/iter (± 1218) 1.00
es/visitor/base-perf/fold_noop_impl_vec 87127 ns/iter (± 1274) 87487 ns/iter (± 2031) 1.00
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 59 ns/iter (± 0) 59 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 105 ns/iter (± 0) 104 ns/iter (± 0) 1.01
es/visitor/base-perf/boxing_unboxed 103 ns/iter (± 0) 104 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3425 ns/iter (± 74) 3580 ns/iter (± 64) 0.96
es/base/parallel/resolver/typescript 5635739654 ns/iter (± 452131589) 5004972183 ns/iter (± 485632193) 1.13
es/base/parallel/hygiene/typescript 2577307155 ns/iter (± 59061565) 2435059950 ns/iter (± 51591785) 1.06
misc/visitors/time-complexity/time 5 94 ns/iter (± 0) 100 ns/iter (± 0) 0.94
misc/visitors/time-complexity/time 10 311 ns/iter (± 0) 339 ns/iter (± 0) 0.92
misc/visitors/time-complexity/time 15 634 ns/iter (± 1) 661 ns/iter (± 11) 0.96
misc/visitors/time-complexity/time 20 1175 ns/iter (± 5) 1218 ns/iter (± 0) 0.96
misc/visitors/time-complexity/time 40 6136 ns/iter (± 38) 6252 ns/iter (± 51) 0.98
misc/visitors/time-complexity/time 60 15640 ns/iter (± 144) 15629 ns/iter (± 38) 1.00
es/full-target/es2016 187592 ns/iter (± 2205) 187495 ns/iter (± 491) 1.00
es/full-target/es2017 183756 ns/iter (± 2084) 183033 ns/iter (± 692) 1.00
es/full-target/es2018 170923 ns/iter (± 442) 172398 ns/iter (± 271) 0.99
es2020_nullish_coalescing 66674 ns/iter (± 293) 67071 ns/iter (± 163) 0.99
es2020_optional_chaining 95739 ns/iter (± 413) 95064 ns/iter (± 294) 1.01
es2022_class_properties 93609 ns/iter (± 135) 93423 ns/iter (± 263) 1.00
es2018_object_rest_spread 71390 ns/iter (± 223) 72135 ns/iter (± 110) 0.99
es2019_optional_catch_binding 61240 ns/iter (± 424) 61293 ns/iter (± 157) 1.00
es2017_async_to_generator 61767 ns/iter (± 126) 61911 ns/iter (± 106) 1.00
es2016_exponentiation 65224 ns/iter (± 228) 65069 ns/iter (± 163) 1.00
es2015_arrow 70217 ns/iter (± 229) 70744 ns/iter (± 265) 0.99
es2015_block_scoped_fn 66792 ns/iter (± 474) 66430 ns/iter (± 145) 1.01
es2015_block_scoping 148508 ns/iter (± 8711) 152301 ns/iter (± 8462) 0.98
es2015_classes 117140 ns/iter (± 661) 117350 ns/iter (± 395) 1.00
es2015_computed_props 61013 ns/iter (± 61) 61459 ns/iter (± 117) 0.99
es2015_destructuring 115409 ns/iter (± 270) 117252 ns/iter (± 438) 0.98
es2015_duplicate_keys 63779 ns/iter (± 93) 64101 ns/iter (± 211) 0.99
es2015_parameters 79765 ns/iter (± 106) 79750 ns/iter (± 150) 1.00
es2015_fn_name 67316 ns/iter (± 795) 67239 ns/iter (± 607) 1.00
es2015_for_of 64601 ns/iter (± 247) 64702 ns/iter (± 119) 1.00
es2015_instanceof 62979 ns/iter (± 132) 63559 ns/iter (± 108) 0.99
es2015_shorthand_property 61000 ns/iter (± 96) 61412 ns/iter (± 85) 0.99
es2015_spread 61098 ns/iter (± 291) 61201 ns/iter (± 130) 1.00
es2015_sticky_regex 62321 ns/iter (± 95) 62709 ns/iter (± 107) 0.99
es2015_typeof_symbol 62362 ns/iter (± 101) 62734 ns/iter (± 122) 0.99
es/transform/baseline/base 51652 ns/iter (± 106) 52366 ns/iter (± 73) 0.99
es/transform/baseline/common_reserved_word 63055 ns/iter (± 224) 62994 ns/iter (± 101) 1.00
es/transform/baseline/common_typescript 144515 ns/iter (± 211) 169152 ns/iter (± 313) 0.85
es/target/es3 169415 ns/iter (± 370) 170342 ns/iter (± 203) 0.99
es/target/es2015 632979 ns/iter (± 2876) 632196 ns/iter (± 1400) 1.00
es/target/es2016 65303 ns/iter (± 161) 65124 ns/iter (± 156) 1.00
es/target/es2017 61921 ns/iter (± 374) 62159 ns/iter (± 100) 1.00
es/target/es2018 81288 ns/iter (± 95) 81825 ns/iter (± 79) 0.99
es/target/es2020 132189 ns/iter (± 199) 132404 ns/iter (± 231) 1.00
babelify-only 692077 ns/iter (± 10945) 672176 ns/iter (± 1127) 1.03
parse_and_babelify_angular 51811109 ns/iter (± 793547) 49335592 ns/iter (± 606035) 1.05
parse_and_babelify_backbone 7026651 ns/iter (± 226177) 5884003 ns/iter (± 140902) 1.19
parse_and_babelify_jquery 38574242 ns/iter (± 1016196) 35626778 ns/iter (± 870393) 1.08
parse_and_babelify_jquery_mobile 63834745 ns/iter (± 3142231) 59410529 ns/iter (± 1252843) 1.07
parse_and_babelify_mootools 39218119 ns/iter (± 1035297) 36295182 ns/iter (± 433304) 1.08
parse_and_babelify_underscore 5156169 ns/iter (± 102953) 4501361 ns/iter (± 75014) 1.15
parse_and_babelify_yui 41411494 ns/iter (± 1889554) 36475500 ns/iter (± 1333547) 1.14
html/minify/document/css_spec 45614111 ns/iter (± 998439) 44547682 ns/iter (± 674316) 1.02
html/minify/document/github 18764256 ns/iter (± 357512) 17825855 ns/iter (± 150552) 1.05
html/minify/document/stackoverflow 16890328 ns/iter (± 231859) 16138341 ns/iter (± 125451) 1.05
html/minify/document_fragment/css_spec 45174024 ns/iter (± 399244) 42453764 ns/iter (± 643365) 1.06
html/minify/document_fragment/github 17770539 ns/iter (± 215449) 17095324 ns/iter (± 117774) 1.04
html/minify/document_fragment/stackoverflow 16464212 ns/iter (± 227878) 15629503 ns/iter (± 151555) 1.05
html/document/visitor/compare/clone 348345 ns/iter (± 3746) 338557 ns/iter (± 2091) 1.03
html/document/visitor/compare/visit_mut_span 374962 ns/iter (± 3470) 371542 ns/iter (± 1435) 1.01
html/document/visitor/compare/visit_mut_span_panic 388399 ns/iter (± 2754) 376755 ns/iter (± 2253) 1.03
html/document/visitor/compare/fold_span 409595 ns/iter (± 2592) 404891 ns/iter (± 3587) 1.01
html/document/visitor/compare/fold_span_panic 468622 ns/iter (± 5788) 456470 ns/iter (± 2428) 1.03
html/document_fragment/visitor/compare/clone 343039 ns/iter (± 1455) 341675 ns/iter (± 1714) 1.00
html/document_fragment/visitor/compare/visit_mut_span 369938 ns/iter (± 1388) 363411 ns/iter (± 933) 1.02
html/document_fragment/visitor/compare/visit_mut_span_panic 382254 ns/iter (± 2697) 372329 ns/iter (± 2640) 1.03
html/document_fragment/visitor/compare/fold_span 418987 ns/iter (± 2517) 402303 ns/iter (± 1759) 1.04
html/document_fragment/visitor/compare/fold_span_panic 465324 ns/iter (± 2798) 459954 ns/iter (± 2178) 1.01
html/lexer/css_2021_spec 15461320 ns/iter (± 17766) 15682457 ns/iter (± 122228) 0.99
html/lexer/github_com_17_05_2022 6002031 ns/iter (± 3296) 6063266 ns/iter (± 6213) 0.99
html/lexer/stackoverflow_com_17_05_2022 5611148 ns/iter (± 3037) 5667923 ns/iter (± 1655) 0.99
html/parser/parser_document/css_2021_spec 27841304 ns/iter (± 372622) 26648875 ns/iter (± 457973) 1.04
html/parser/parser_document/github_com_17_05_2022 8990186 ns/iter (± 40625) 8786436 ns/iter (± 20451) 1.02
html/parser/parser_document/stackoverflow_com_17_05_2022 7906776 ns/iter (± 33940) 7778691 ns/iter (± 6479) 1.02
html/parser/parser_document_fragment/css_2021_spec 28303439 ns/iter (± 291133) 27437284 ns/iter (± 416688) 1.03
html/parser/parser_document_fragment/github_com_17_05_2022 9090776 ns/iter (± 75126) 8794123 ns/iter (± 26064) 1.03
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7895209 ns/iter (± 47639) 7759119 ns/iter (± 9024) 1.02

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

Please sign in to comment.