Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(dbg-swc): Cleanup and document reducer (#6647)
- Loading branch information
Showing
11 changed files
with
105 additions
and
203 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
use std::sync::Arc; | ||
|
||
use anyhow::Result; | ||
use clap::Subcommand; | ||
use swc_common::SourceMap; | ||
|
||
use self::{ | ||
compare::CompareCommand, ensure_size::EnsureSize, next::NextCommand, reduce::ReduceCommand, | ||
}; | ||
|
||
mod compare; | ||
mod ensure_size; | ||
mod next; | ||
mod reduce; | ||
|
||
/// Debug the ECMAScript Minifier. | ||
#[derive(Debug, Subcommand)] | ||
pub enum MinifierCommand { | ||
#[clap(subcommand)] | ||
Next(NextCommand), | ||
Reduce(ReduceCommand), | ||
Compare(CompareCommand), | ||
EnsureSize(EnsureSize), | ||
} | ||
|
||
impl MinifierCommand { | ||
pub fn run(self, cm: Arc<SourceMap>) -> Result<()> { | ||
match self { | ||
MinifierCommand::Next(cmd) => cmd.run(cm), | ||
MinifierCommand::Reduce(cmd) => cmd.run(cm), | ||
MinifierCommand::EnsureSize(cmd) => cmd.run(cm), | ||
MinifierCommand::Compare(cmd) => cmd.run(cm), | ||
} | ||
} | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
use std::sync::Arc; | ||
|
||
use anyhow::Result; | ||
use clap::Subcommand; | ||
use swc_common::SourceMap; | ||
|
||
use self::{exec_test::ExecForTestingCommand, minifier::MinifierCommand}; | ||
|
||
mod exec_test; | ||
mod minifier; | ||
|
||
/// Debug modules related to ECMAScript | ||
#[derive(Debug, Subcommand)] | ||
pub(crate) enum EsCommand { | ||
#[clap(subcommand)] | ||
Minifier(MinifierCommand), | ||
#[clap(subcommand)] | ||
ExecForTesting(ExecForTestingCommand), | ||
} | ||
|
||
impl EsCommand { | ||
pub fn run(self, cm: Arc<SourceMap>) -> Result<()> { | ||
match self { | ||
Self::Minifier(cmd) => cmd.run(cm), | ||
Self::ExecForTesting(cmd) => cmd.run(cm), | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
b13a079
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
309164
ns/iter (± 8660
)298265
ns/iter (± 8793
)1.04
es/full/minify/libraries/antd
1658497902
ns/iter (± 32551585
)1517172182
ns/iter (± 20585075
)1.09
es/full/minify/libraries/d3
336739727
ns/iter (± 5737534
)310668546
ns/iter (± 3938005
)1.08
es/full/minify/libraries/echarts
1404285052
ns/iter (± 14739762
)1295713808
ns/iter (± 11112022
)1.08
es/full/minify/libraries/jquery
91683329
ns/iter (± 1307883
)88440245
ns/iter (± 1117761
)1.04
es/full/minify/libraries/lodash
110280854
ns/iter (± 1280948
)105027849
ns/iter (± 753516
)1.05
es/full/minify/libraries/moment
54465987
ns/iter (± 658966
)53813707
ns/iter (± 2733556
)1.01
es/full/minify/libraries/react
19999513
ns/iter (± 313779
)19177023
ns/iter (± 154661
)1.04
es/full/minify/libraries/terser
263450606
ns/iter (± 2847287
)240074142
ns/iter (± 1882043
)1.10
es/full/minify/libraries/three
475276523
ns/iter (± 5883082
)431015790
ns/iter (± 5638935
)1.10
es/full/minify/libraries/typescript
3141246203
ns/iter (± 17535061
)2978173793
ns/iter (± 27359410
)1.05
es/full/minify/libraries/victory
719105159
ns/iter (± 7230620
)621760485
ns/iter (± 6419309
)1.16
es/full/minify/libraries/vue
136853527
ns/iter (± 1514360
)128230071
ns/iter (± 1697534
)1.07
es/full/codegen/es3
27600
ns/iter (± 64
)27555
ns/iter (± 293
)1.00
es/full/codegen/es5
27550
ns/iter (± 84
)26846
ns/iter (± 202
)1.03
es/full/codegen/es2015
27614
ns/iter (± 62
)26995
ns/iter (± 215
)1.02
es/full/codegen/es2016
27655
ns/iter (± 60
)26954
ns/iter (± 210
)1.03
es/full/codegen/es2017
27627
ns/iter (± 59
)27748
ns/iter (± 43
)1.00
es/full/codegen/es2018
27569
ns/iter (± 78
)26945
ns/iter (± 191
)1.02
es/full/codegen/es2019
27640
ns/iter (± 61
)26896
ns/iter (± 276
)1.03
es/full/codegen/es2020
27623
ns/iter (± 75
)26967
ns/iter (± 231
)1.02
es/full/all/es3
171342891
ns/iter (± 7223138
)168083415
ns/iter (± 3366374
)1.02
es/full/all/es5
162663744
ns/iter (± 1863984
)160999986
ns/iter (± 2405009
)1.01
es/full/all/es2015
121591467
ns/iter (± 1353148
)118485187
ns/iter (± 2101046
)1.03
es/full/all/es2016
120319700
ns/iter (± 1546610
)117946240
ns/iter (± 951271
)1.02
es/full/all/es2017
120908342
ns/iter (± 2080854
)117642795
ns/iter (± 507114
)1.03
es/full/all/es2018
118387830
ns/iter (± 5068178
)115478364
ns/iter (± 1492077
)1.03
es/full/all/es2019
118411709
ns/iter (± 1796243
)114588699
ns/iter (± 969155
)1.03
es/full/all/es2020
114977447
ns/iter (± 2695421
)110501595
ns/iter (± 1052836
)1.04
es/full/parser
504654
ns/iter (± 8155
)490815
ns/iter (± 8105
)1.03
es/full/base/fixer
22061
ns/iter (± 19
)21967
ns/iter (± 20
)1.00
es/full/base/resolver_and_hygiene
77142
ns/iter (± 161
)75953
ns/iter (± 813
)1.02
serialization of ast node
143
ns/iter (± 0
)138
ns/iter (± 1
)1.04
serialization of serde
126
ns/iter (± 0
)125
ns/iter (± 0
)1.01
css/minify/libraries/bootstrap
27681239
ns/iter (± 325892
)26603211
ns/iter (± 169936
)1.04
css/visitor/compare/clone
2074437
ns/iter (± 9519
)2074416
ns/iter (± 33781
)1.00
css/visitor/compare/visit_mut_span
2267634
ns/iter (± 6582
)2255488
ns/iter (± 7936
)1.01
css/visitor/compare/visit_mut_span_panic
2339508
ns/iter (± 8807
)2297958
ns/iter (± 7415
)1.02
css/visitor/compare/fold_span
3002266
ns/iter (± 19137
)2976678
ns/iter (± 19414
)1.01
css/visitor/compare/fold_span_panic
3196239
ns/iter (± 27356
)3120678
ns/iter (± 30100
)1.02
css/lexer/bootstrap_5_1_3
5181869
ns/iter (± 3868
)5078673
ns/iter (± 29742
)1.02
css/lexer/foundation_6_7_4
4386719
ns/iter (± 747
)4312952
ns/iter (± 18973
)1.02
css/lexer/tailwind_3_1_1
825199
ns/iter (± 397
)807614
ns/iter (± 5749
)1.02
css/parser/bootstrap_5_1_3
20824915
ns/iter (± 63673
)20287808
ns/iter (± 130847
)1.03
css/parser/foundation_6_7_4
16591933
ns/iter (± 47244
)16300480
ns/iter (± 94926
)1.02
css/parser/tailwind_3_1_1
3198276
ns/iter (± 2739
)3131812
ns/iter (± 15506
)1.02
es/codegen/colors
324034
ns/iter (± 181691
)329745
ns/iter (± 186040
)0.98
es/codegen/large
1219163
ns/iter (± 640175
)1217821
ns/iter (± 647174
)1.00
es/codegen/with-parser/colors
45250
ns/iter (± 962
)44908
ns/iter (± 618
)1.01
es/codegen/with-parser/large
512102
ns/iter (± 727
)511530
ns/iter (± 1765
)1.00
es/minify/libraries/antd
1489467255
ns/iter (± 24937301
)1375507014
ns/iter (± 10270722
)1.08
es/minify/libraries/d3
306093692
ns/iter (± 3371481
)283561973
ns/iter (± 8323861
)1.08
es/minify/libraries/echarts
1255810201
ns/iter (± 9111416
)1129709589
ns/iter (± 38271739
)1.11
es/minify/libraries/jquery
81025305
ns/iter (± 962873
)76660633
ns/iter (± 494348
)1.06
es/minify/libraries/lodash
100519607
ns/iter (± 1038616
)94887172
ns/iter (± 726280
)1.06
es/minify/libraries/moment
47949674
ns/iter (± 800143
)45222124
ns/iter (± 442706
)1.06
es/minify/libraries/react
17903896
ns/iter (± 283813
)17274529
ns/iter (± 144272
)1.04
es/minify/libraries/terser
235432304
ns/iter (± 3831041
)207026714
ns/iter (± 2311739
)1.14
es/minify/libraries/three
417855789
ns/iter (± 7173180
)364326094
ns/iter (± 3928893
)1.15
es/minify/libraries/typescript
2720688975
ns/iter (± 25052264
)2588091094
ns/iter (± 19828455
)1.05
es/minify/libraries/victory
600579516
ns/iter (± 15944068
)526428657
ns/iter (± 5624457
)1.14
es/minify/libraries/vue
122318565
ns/iter (± 1151759
)114142025
ns/iter (± 916241
)1.07
es/visitor/compare/clone
2374305
ns/iter (± 14337
)2359351
ns/iter (± 32674
)1.01
es/visitor/compare/visit_mut_span
2820973
ns/iter (± 11043
)2778783
ns/iter (± 22005
)1.02
es/visitor/compare/visit_mut_span_panic
2875438
ns/iter (± 18418
)2776874
ns/iter (± 19278
)1.04
es/visitor/compare/fold_span
4093510
ns/iter (± 53444
)3832158
ns/iter (± 43904
)1.07
es/visitor/compare/fold_span_panic
4130487
ns/iter (± 11420
)3978705
ns/iter (± 26185
)1.04
es/lexer/colors
17376
ns/iter (± 17
)17041
ns/iter (± 121
)1.02
es/lexer/angular
8222957
ns/iter (± 3878
)7990236
ns/iter (± 32417
)1.03
es/lexer/backbone
1072703
ns/iter (± 1030
)1047783
ns/iter (± 7504
)1.02
es/lexer/jquery
5961060
ns/iter (± 1647
)5868105
ns/iter (± 35815
)1.02
es/lexer/jquery mobile
9202628
ns/iter (± 2969
)8937948
ns/iter (± 60724
)1.03
es/lexer/mootools
4681639
ns/iter (± 2280
)4567754
ns/iter (± 28744
)1.02
es/lexer/underscore
895748
ns/iter (± 201
)879724
ns/iter (± 5201
)1.02
es/lexer/three
27970004
ns/iter (± 43653
)27625459
ns/iter (± 243848
)1.01
es/lexer/yui
5045609
ns/iter (± 2528
)5032030
ns/iter (± 20832
)1.00
es/parser/colors
30955
ns/iter (± 137
)30156
ns/iter (± 320
)1.03
es/parser/angular
16291599
ns/iter (± 158787
)15433997
ns/iter (± 172358
)1.06
es/parser/backbone
2328823
ns/iter (± 9666
)2253215
ns/iter (± 23986
)1.03
es/parser/jquery
12641949
ns/iter (± 97888
)12235171
ns/iter (± 104186
)1.03
es/parser/jquery mobile
20434651
ns/iter (± 269666
)19068123
ns/iter (± 186419
)1.07
es/parser/mootools
9614747
ns/iter (± 27480
)9279431
ns/iter (± 87485
)1.04
es/parser/underscore
1981744
ns/iter (± 11750
)1924380
ns/iter (± 24265
)1.03
es/parser/three
59511262
ns/iter (± 261020
)53317410
ns/iter (± 757517
)1.12
es/parser/yui
9785584
ns/iter (± 52868
)9586602
ns/iter (± 164026
)1.02
es/preset-env/usage/builtin_type
142613
ns/iter (± 33413
)141451
ns/iter (± 33237
)1.01
es/preset-env/usage/property
21513
ns/iter (± 94
)21449
ns/iter (± 149
)1.00
es/resolver/typescript
112530687
ns/iter (± 4172540
)109381900
ns/iter (± 1406514
)1.03
es/fixer/typescript
86490361
ns/iter (± 886577
)86166118
ns/iter (± 1870083
)1.00
es/hygiene/typescript
172888934
ns/iter (± 2004582
)169741116
ns/iter (± 1926531
)1.02
es/resolver_with_hygiene/typescript
299517132
ns/iter (± 5000883
)292938234
ns/iter (± 1828331
)1.02
es/visitor/base-perf/module_clone
73978
ns/iter (± 799
)74431
ns/iter (± 1569
)0.99
es/visitor/base-perf/fold_empty
86782
ns/iter (± 1672
)85275
ns/iter (± 1399
)1.02
es/visitor/base-perf/fold_noop_impl_all
86179
ns/iter (± 1352
)85689
ns/iter (± 1405
)1.01
es/visitor/base-perf/fold_noop_impl_vec
86516
ns/iter (± 790
)85945
ns/iter (± 1179
)1.01
es/visitor/base-perf/boxing_boxed_clone
54
ns/iter (± 0
)55
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed_clone
58
ns/iter (± 0
)58
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
101
ns/iter (± 0
)101
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
104
ns/iter (± 0
)100
ns/iter (± 0
)1.04
es/visitor/base-perf/visit_contains_this
3655
ns/iter (± 85
)3288
ns/iter (± 46
)1.11
es/base/parallel/resolver/typescript
5354642080
ns/iter (± 338253663
)5111034411
ns/iter (± 191853260
)1.05
es/base/parallel/hygiene/typescript
2034971140
ns/iter (± 23556992
)2032643219
ns/iter (± 44709894
)1.00
misc/visitors/time-complexity/time 5
103
ns/iter (± 0
)101
ns/iter (± 0
)1.02
misc/visitors/time-complexity/time 10
365
ns/iter (± 1
)327
ns/iter (± 3
)1.12
misc/visitors/time-complexity/time 15
703
ns/iter (± 34
)632
ns/iter (± 7
)1.11
misc/visitors/time-complexity/time 20
1247
ns/iter (± 1
)1183
ns/iter (± 10
)1.05
misc/visitors/time-complexity/time 40
6680
ns/iter (± 47
)6605
ns/iter (± 90
)1.01
misc/visitors/time-complexity/time 60
17237
ns/iter (± 162
)16976
ns/iter (± 160
)1.02
es/full-target/es2016
187718
ns/iter (± 453
)186260
ns/iter (± 3051
)1.01
es/full-target/es2017
181532
ns/iter (± 409
)176474
ns/iter (± 1638
)1.03
es/full-target/es2018
170249
ns/iter (± 482
)165164
ns/iter (± 1614
)1.03
es2020_nullish_coalescing
65484
ns/iter (± 156
)64708
ns/iter (± 748
)1.01
es2020_optional_chaining
94651
ns/iter (± 922
)91937
ns/iter (± 677
)1.03
es2022_class_properties
92202
ns/iter (± 202
)89752
ns/iter (± 693
)1.03
es2018_object_rest_spread
69748
ns/iter (± 88
)68140
ns/iter (± 331
)1.02
es2019_optional_catch_binding
60034
ns/iter (± 111
)58146
ns/iter (± 366
)1.03
es2017_async_to_generator
60293
ns/iter (± 113
)58765
ns/iter (± 440
)1.03
es2016_exponentiation
63579
ns/iter (± 115
)61927
ns/iter (± 365
)1.03
es2015_arrow
68522
ns/iter (± 240
)67216
ns/iter (± 626
)1.02
es2015_block_scoped_fn
64730
ns/iter (± 175
)63240
ns/iter (± 545
)1.02
es2015_block_scoping
139856
ns/iter (± 11173
)155483
ns/iter (± 11140
)0.90
es2015_classes
115284
ns/iter (± 420
)111727
ns/iter (± 891
)1.03
es2015_computed_props
59546
ns/iter (± 68
)57912
ns/iter (± 231
)1.03
es2015_destructuring
114149
ns/iter (± 434
)111006
ns/iter (± 904
)1.03
es2015_duplicate_keys
62374
ns/iter (± 82
)61076
ns/iter (± 482
)1.02
es2015_parameters
77791
ns/iter (± 98
)75782
ns/iter (± 566
)1.03
es2015_fn_name
65062
ns/iter (± 541
)63225
ns/iter (± 412
)1.03
es2015_for_of
62909
ns/iter (± 54
)61063
ns/iter (± 391
)1.03
es2015_instanceof
61611
ns/iter (± 402
)59732
ns/iter (± 260
)1.03
es2015_shorthand_property
59715
ns/iter (± 81
)58313
ns/iter (± 314
)1.02
es2015_spread
59452
ns/iter (± 76
)58608
ns/iter (± 423
)1.01
es2015_sticky_regex
61102
ns/iter (± 118
)59893
ns/iter (± 535
)1.02
es2015_typeof_symbol
60953
ns/iter (± 70
)59442
ns/iter (± 455
)1.03
es/transform/baseline/base
50313
ns/iter (± 80
)49389
ns/iter (± 467
)1.02
es/transform/baseline/common_reserved_word
61130
ns/iter (± 99
)59544
ns/iter (± 496
)1.03
es/transform/baseline/common_typescript
140788
ns/iter (± 233
)136478
ns/iter (± 1191
)1.03
es/target/es3
168603
ns/iter (± 136
)163735
ns/iter (± 971
)1.03
es/target/es2015
626422
ns/iter (± 1299
)609256
ns/iter (± 7607
)1.03
es/target/es2016
63710
ns/iter (± 166
)62665
ns/iter (± 857
)1.02
es/target/es2017
60477
ns/iter (± 148
)59565
ns/iter (± 688
)1.02
es/target/es2018
80025
ns/iter (± 170
)78069
ns/iter (± 797
)1.03
es/target/es2020
131426
ns/iter (± 269
)127925
ns/iter (± 1305
)1.03
babelify-only
660753
ns/iter (± 1507
)652185
ns/iter (± 4402
)1.01
parse_and_babelify_angular
42817814
ns/iter (± 431562
)40729350
ns/iter (± 369943
)1.05
parse_and_babelify_backbone
5438531
ns/iter (± 54909
)5287650
ns/iter (± 45317
)1.03
parse_and_babelify_jquery
32554003
ns/iter (± 639348
)31307164
ns/iter (± 624027
)1.04
parse_and_babelify_jquery_mobile
55176981
ns/iter (± 1779121
)54554161
ns/iter (± 1006800
)1.01
parse_and_babelify_mootools
33627407
ns/iter (± 368537
)31004417
ns/iter (± 1223549
)1.08
parse_and_babelify_underscore
4358292
ns/iter (± 43453
)4320403
ns/iter (± 19423
)1.01
parse_and_babelify_yui
32953685
ns/iter (± 654318
)30539916
ns/iter (± 580093
)1.08
html/minify/document/css_spec
42425909
ns/iter (± 354140
)39634858
ns/iter (± 423226
)1.07
html/minify/document/github
17515564
ns/iter (± 85971
)16845619
ns/iter (± 213786
)1.04
html/minify/document/stackoverflow
15594722
ns/iter (± 59065
)15057669
ns/iter (± 107199
)1.04
html/minify/document_fragment/css_spec
40594422
ns/iter (± 128321
)37970324
ns/iter (± 311881
)1.07
html/minify/document_fragment/github
16811975
ns/iter (± 33378
)16199756
ns/iter (± 127659
)1.04
html/minify/document_fragment/stackoverflow
15234972
ns/iter (± 55567
)14607632
ns/iter (± 50939
)1.04
html/document/visitor/compare/clone
343028
ns/iter (± 3489
)334237
ns/iter (± 2810
)1.03
html/document/visitor/compare/visit_mut_span
367902
ns/iter (± 2376
)356386
ns/iter (± 3264
)1.03
html/document/visitor/compare/visit_mut_span_panic
376653
ns/iter (± 1733
)373953
ns/iter (± 2509
)1.01
html/document/visitor/compare/fold_span
406719
ns/iter (± 2270
)394161
ns/iter (± 4328
)1.03
html/document/visitor/compare/fold_span_panic
466892
ns/iter (± 1671
)451497
ns/iter (± 2214
)1.03
html/document_fragment/visitor/compare/clone
343598
ns/iter (± 2202
)337794
ns/iter (± 3083
)1.02
html/document_fragment/visitor/compare/visit_mut_span
368214
ns/iter (± 8052
)357565
ns/iter (± 2681
)1.03
html/document_fragment/visitor/compare/visit_mut_span_panic
374081
ns/iter (± 1239
)368268
ns/iter (± 2068
)1.02
html/document_fragment/visitor/compare/fold_span
407089
ns/iter (± 2637
)397394
ns/iter (± 2285
)1.02
html/document_fragment/visitor/compare/fold_span_panic
458944
ns/iter (± 1652
)455352
ns/iter (± 4235
)1.01
html/lexer/css_2021_spec
15571473
ns/iter (± 10297
)15101434
ns/iter (± 108865
)1.03
html/lexer/github_com_17_05_2022
6051138
ns/iter (± 2492
)5895766
ns/iter (± 60357
)1.03
html/lexer/stackoverflow_com_17_05_2022
5646583
ns/iter (± 2393
)5460986
ns/iter (± 39834
)1.03
html/parser/parser_document/css_2021_spec
26095564
ns/iter (± 193844
)24488964
ns/iter (± 127044
)1.07
html/parser/parser_document/github_com_17_05_2022
8799031
ns/iter (± 9432
)8516296
ns/iter (± 81976
)1.03
html/parser/parser_document/stackoverflow_com_17_05_2022
7721927
ns/iter (± 6574
)7537615
ns/iter (± 42889
)1.02
html/parser/parser_document_fragment/css_2021_spec
26413000
ns/iter (± 266077
)24835803
ns/iter (± 184432
)1.06
html/parser/parser_document_fragment/github_com_17_05_2022
8810456
ns/iter (± 7300
)8515696
ns/iter (± 84540
)1.03
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7736761
ns/iter (± 4407
)7490586
ns/iter (± 31253
)1.03
This comment was automatically generated by workflow using github-action-benchmark.