Skip to content

Commit

Permalink
perf(bindings): Enable share-generics to reduce binary size (#7482)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 2, 2023
1 parent 9de0861 commit d623db4
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions .cargo/config.toml
Expand Up @@ -2,35 +2,42 @@
[build]

rustdocflags = ["--cfg", "docsrs"]
rustflags = []
rustflags = ["-Z", "share-generics=y"]

[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "target-feature=+sse2"]
rustflags = ["-C", "target-feature=+sse2", "-Z", "share-generics=y"]

[target.aarch64-apple-darwin]
rustflags = []
rustflags = ["-Z", "share-generics=y"]

[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
rustflags = []
rustflags = ["-Z", "share-generics=y"]

[target.aarch64-unknown-linux-musl]
linker = "aarch64-linux-musl-gcc"
rustflags = ["-C", "target-feature=-crt-static", "-C", "link-arg=-lgcc"]
linker = "aarch64-linux-musl-gcc"
rustflags = [
"-C",
"target-feature=-crt-static",
"-C",
"link-arg=-lgcc",
"-Z",
"share-generics=y",
]

[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc"
rustflags = []
rustflags = ["-Z", "share-generics=y"]

[target.aarch64-linux-android]
rustflags = []
rustflags = ["-Z", "share-generics=y"]

[target.x86_64-pc-windows-msvc]
linker = "rust-lld"

[target.aarch64-pc-windows-msvc]
linker = "rust-lld"
rustflags = []
rustflags = ["-Z", "share-generics=y"]

[target.wasm32-unknown-unknown]
rustflags = []
rustflags = ["-Z", "share-generics=y"]

2 comments on commit d623db4

@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: d623db4 Previous: 65ce5d1 Ratio
es/full/bugs-1 371849 ns/iter (± 10659) 317609 ns/iter (± 10248) 1.17
es/full/minify/libraries/antd 1821822890 ns/iter (± 20415333) 1640816611 ns/iter (± 28387859) 1.11
es/full/minify/libraries/d3 355562151 ns/iter (± 5353428) 296754423 ns/iter (± 6431096) 1.20
es/full/minify/libraries/echarts 1394821415 ns/iter (± 13920806) 1261180830 ns/iter (± 26519983) 1.11
es/full/minify/libraries/jquery 112481754 ns/iter (± 1666326) 92678085 ns/iter (± 2631401) 1.21
es/full/minify/libraries/lodash 131058088 ns/iter (± 2266995) 109173839 ns/iter (± 705318) 1.20
es/full/minify/libraries/moment 67059795 ns/iter (± 2806003) 53989939 ns/iter (± 677631) 1.24
es/full/minify/libraries/react 24655107 ns/iter (± 611331) 19498973 ns/iter (± 202697) 1.26
es/full/minify/libraries/terser 310295132 ns/iter (± 4242162) 249354462 ns/iter (± 2091541) 1.24
es/full/minify/libraries/three 528481306 ns/iter (± 12109678) 446471616 ns/iter (± 9330099) 1.18
es/full/minify/libraries/typescript 3505213773 ns/iter (± 18709501) 3127532559 ns/iter (± 16303557) 1.12
es/full/minify/libraries/victory 801713253 ns/iter (± 4819376) 683718044 ns/iter (± 14237085) 1.17
es/full/minify/libraries/vue 165543072 ns/iter (± 2163798) 135469871 ns/iter (± 2088531) 1.22
es/full/codegen/es3 40296 ns/iter (± 105) 33885 ns/iter (± 45) 1.19
es/full/codegen/es5 40302 ns/iter (± 44) 34024 ns/iter (± 70) 1.18
es/full/codegen/es2015 40390 ns/iter (± 37) 33906 ns/iter (± 24) 1.19
es/full/codegen/es2016 40283 ns/iter (± 41) 33956 ns/iter (± 45) 1.19
es/full/codegen/es2017 40330 ns/iter (± 68) 33955 ns/iter (± 42) 1.19
es/full/codegen/es2018 40336 ns/iter (± 56) 33970 ns/iter (± 29) 1.19
es/full/codegen/es2019 40388 ns/iter (± 58) 33979 ns/iter (± 54) 1.19
es/full/codegen/es2020 40396 ns/iter (± 107) 34031 ns/iter (± 52) 1.19
es/full/all/es3 216245145 ns/iter (± 4614421) 185030798 ns/iter (± 4156151) 1.17
es/full/all/es5 206755573 ns/iter (± 5517956) 179478261 ns/iter (± 2806586) 1.15
es/full/all/es2015 159099294 ns/iter (± 3733839) 140099500 ns/iter (± 4808845) 1.14
es/full/all/es2016 159070453 ns/iter (± 2862866) 140761162 ns/iter (± 2231376) 1.13
es/full/all/es2017 160140746 ns/iter (± 3586679) 137739252 ns/iter (± 1820326) 1.16
es/full/all/es2018 157403544 ns/iter (± 5811649) 133928081 ns/iter (± 1622473) 1.18
es/full/all/es2019 156257249 ns/iter (± 2411640) 133466050 ns/iter (± 1493723) 1.17
es/full/all/es2020 153549763 ns/iter (± 5258991) 123083510 ns/iter (± 2235883) 1.25
es/full/parser 587048 ns/iter (± 8380) 531765 ns/iter (± 6979) 1.10
es/full/base/fixer 23973 ns/iter (± 27) 24126 ns/iter (± 52) 0.99
es/full/base/resolver_and_hygiene 105170 ns/iter (± 214) 85961 ns/iter (± 122) 1.22
serialization of serde 279 ns/iter (± 0) 120 ns/iter (± 0) 2.33
css/minify/libraries/bootstrap 35461240 ns/iter (± 148969) 31758895 ns/iter (± 350991) 1.12
css/visitor/compare/clone 2386535 ns/iter (± 7654) 2099313 ns/iter (± 16142) 1.14
css/visitor/compare/visit_mut_span 2580322 ns/iter (± 16804) 2301871 ns/iter (± 7007) 1.12
css/visitor/compare/visit_mut_span_panic 2616884 ns/iter (± 9239) 2357961 ns/iter (± 8518) 1.11
css/visitor/compare/fold_span 3337755 ns/iter (± 16362) 3068094 ns/iter (± 7080) 1.09
css/visitor/compare/fold_span_panic 3490838 ns/iter (± 12713) 3242619 ns/iter (± 21300) 1.08
css/lexer/bootstrap_5_1_3 5485691 ns/iter (± 12049) 5212260 ns/iter (± 9261) 1.05
css/lexer/foundation_6_7_4 4642751 ns/iter (± 4537) 4384531 ns/iter (± 1352) 1.06
css/lexer/tailwind_3_1_1 888792 ns/iter (± 547) 834913 ns/iter (± 471) 1.06
css/parser/bootstrap_5_1_3 23647965 ns/iter (± 100274) 21087486 ns/iter (± 51895) 1.12
css/parser/foundation_6_7_4 18897679 ns/iter (± 15912) 16710205 ns/iter (± 53964) 1.13
css/parser/tailwind_3_1_1 3659008 ns/iter (± 2738) 3234434 ns/iter (± 9608) 1.13
es/codegen/colors 732599 ns/iter (± 394420) 737626 ns/iter (± 397038) 0.99
es/codegen/large 3056486 ns/iter (± 1597366) 3199850 ns/iter (± 1672787) 0.96
es/codegen/with-parser/colors 56144 ns/iter (± 449) 48790 ns/iter (± 401) 1.15
es/codegen/with-parser/large 560615 ns/iter (± 1931) 512232 ns/iter (± 1309) 1.09
es/minify/libraries/antd 1574195868 ns/iter (± 14875834) 1456601795 ns/iter (± 25391396) 1.08
es/minify/libraries/d3 309339113 ns/iter (± 5821929) 263022627 ns/iter (± 5357002) 1.18
es/minify/libraries/echarts 1224268370 ns/iter (± 15953039) 1117599513 ns/iter (± 12627669) 1.10
es/minify/libraries/jquery 95931610 ns/iter (± 1928036) 81658824 ns/iter (± 1110968) 1.17
es/minify/libraries/lodash 116730699 ns/iter (± 2862356) 98059572 ns/iter (± 1466651) 1.19
es/minify/libraries/moment 57438028 ns/iter (± 1216638) 47886484 ns/iter (± 954640) 1.20
es/minify/libraries/react 21128053 ns/iter (± 345195) 17654679 ns/iter (± 203332) 1.20
es/minify/libraries/terser 248179790 ns/iter (± 5874401) 217826828 ns/iter (± 3727450) 1.14
es/minify/libraries/three 422232549 ns/iter (± 10319719) 366720751 ns/iter (± 5510547) 1.15
es/minify/libraries/typescript 2909151795 ns/iter (± 44576926) 2730972473 ns/iter (± 13533606) 1.07
es/minify/libraries/victory 638974229 ns/iter (± 5530606) 575527839 ns/iter (± 12500490) 1.11
es/minify/libraries/vue 142912282 ns/iter (± 1382375) 121407807 ns/iter (± 920273) 1.18
es/visitor/compare/clone 2389778 ns/iter (± 4844) 2366922 ns/iter (± 19605) 1.01
es/visitor/compare/visit_mut_span 2740180 ns/iter (± 6080) 2730344 ns/iter (± 7318) 1.00
es/visitor/compare/visit_mut_span_panic 2797587 ns/iter (± 4897) 2791547 ns/iter (± 7112) 1.00
es/visitor/compare/fold_span 3879369 ns/iter (± 6928) 3831289 ns/iter (± 11725) 1.01
es/visitor/compare/fold_span_panic 4001501 ns/iter (± 8086) 3985229 ns/iter (± 13826) 1.00
es/lexer/colors 14440 ns/iter (± 36) 13120 ns/iter (± 20) 1.10
es/lexer/angular 6751769 ns/iter (± 8055) 6423950 ns/iter (± 6416) 1.05
es/lexer/backbone 836507 ns/iter (± 1030) 795391 ns/iter (± 338) 1.05
es/lexer/jquery 4684977 ns/iter (± 5213) 4475372 ns/iter (± 5614) 1.05
es/lexer/jquery mobile 7223512 ns/iter (± 13273) 6940909 ns/iter (± 2192) 1.04
es/lexer/mootools 3683717 ns/iter (± 2718) 3503790 ns/iter (± 2728) 1.05
es/lexer/underscore 689803 ns/iter (± 344) 658288 ns/iter (± 360) 1.05
es/lexer/three 22047798 ns/iter (± 29212) 21050319 ns/iter (± 16705) 1.05
es/lexer/yui 4191744 ns/iter (± 2856) 3899961 ns/iter (± 1297) 1.07
es/parser/colors 32787 ns/iter (± 109) 29147 ns/iter (± 104) 1.12
es/parser/angular 16198355 ns/iter (± 162573) 14980842 ns/iter (± 98852) 1.08
es/parser/backbone 2370726 ns/iter (± 14208) 2172185 ns/iter (± 15293) 1.09
es/parser/jquery 12862250 ns/iter (± 89684) 11830748 ns/iter (± 104001) 1.09
es/parser/jquery mobile 19711676 ns/iter (± 88397) 18421245 ns/iter (± 90538) 1.07
es/parser/mootools 9794119 ns/iter (± 19292) 8973046 ns/iter (± 28824) 1.09
es/parser/underscore 2019216 ns/iter (± 12413) 1846838 ns/iter (± 4646) 1.09
es/parser/three 56925802 ns/iter (± 596419) 54427635 ns/iter (± 924073) 1.05
es/parser/yui 9932485 ns/iter (± 63560) 9131611 ns/iter (± 62882) 1.09
es/preset-env/usage/builtin_type 150591 ns/iter (± 33342) 139783 ns/iter (± 34954) 1.08
es/preset-env/usage/property 28887 ns/iter (± 56) 19962 ns/iter (± 112) 1.45
es/resolver/typescript 116100387 ns/iter (± 4004770) 119747046 ns/iter (± 3483673) 0.97
es/fixer/typescript 81826730 ns/iter (± 560742) 85277544 ns/iter (± 1086574) 0.96
es/hygiene/typescript 180436931 ns/iter (± 3686869) 186263384 ns/iter (± 1594350) 0.97
es/resolver_with_hygiene/typescript 381744354 ns/iter (± 1826004) 324547266 ns/iter (± 3111009) 1.18
es/visitor/base-perf/module_clone 81949 ns/iter (± 559) 80234 ns/iter (± 323) 1.02
es/visitor/base-perf/fold_empty 91271 ns/iter (± 428) 90109 ns/iter (± 498) 1.01
es/visitor/base-perf/fold_noop_impl_all 91264 ns/iter (± 413) 90549 ns/iter (± 389) 1.01
es/visitor/base-perf/fold_noop_impl_vec 91750 ns/iter (± 508) 90545 ns/iter (± 359) 1.01
es/visitor/base-perf/boxing_boxed_clone 60 ns/iter (± 0) 56 ns/iter (± 0) 1.07
es/visitor/base-perf/boxing_unboxed_clone 46 ns/iter (± 0) 42 ns/iter (± 0) 1.10
es/visitor/base-perf/boxing_boxed 107 ns/iter (± 0) 102 ns/iter (± 0) 1.05
es/visitor/base-perf/boxing_unboxed 81 ns/iter (± 0) 78 ns/iter (± 0) 1.04
es/visitor/base-perf/visit_contains_this 3632 ns/iter (± 60) 3437 ns/iter (± 50) 1.06
es/base/parallel/resolver/typescript 7474157645 ns/iter (± 489416287) 6232304280 ns/iter (± 632799553) 1.20
es/base/parallel/hygiene/typescript 2160820855 ns/iter (± 25512253) 2172165500 ns/iter (± 22913921) 0.99
misc/visitors/time-complexity/time 5 104 ns/iter (± 0) 104 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 319 ns/iter (± 6) 336 ns/iter (± 0) 0.95
misc/visitors/time-complexity/time 15 687 ns/iter (± 7) 675 ns/iter (± 5) 1.02
misc/visitors/time-complexity/time 20 1208 ns/iter (± 1) 1248 ns/iter (± 2) 0.97
misc/visitors/time-complexity/time 40 6604 ns/iter (± 33) 6230 ns/iter (± 6) 1.06
misc/visitors/time-complexity/time 60 17232 ns/iter (± 147) 15622 ns/iter (± 46) 1.10
es/full-target/es2016 266284 ns/iter (± 325) 253335 ns/iter (± 361) 1.05
es/full-target/es2017 257702 ns/iter (± 298) 245328 ns/iter (± 464) 1.05
es/full-target/es2018 246649 ns/iter (± 397) 234206 ns/iter (± 476) 1.05
es2020_nullish_coalescing 96611 ns/iter (± 353) 92949 ns/iter (± 400) 1.04
es2020_optional_chaining 128685 ns/iter (± 259) 124360 ns/iter (± 387) 1.03
es2022_class_properties 154099 ns/iter (± 296) 148428 ns/iter (± 534) 1.04
es2018_object_rest_spread 98234 ns/iter (± 382) 96059 ns/iter (± 174) 1.02
es2019_optional_catch_binding 86184 ns/iter (± 167) 85204 ns/iter (± 238) 1.01
es2017_async_to_generator 86864 ns/iter (± 160) 85934 ns/iter (± 244) 1.01
es2016_exponentiation 93177 ns/iter (± 270) 89857 ns/iter (± 112) 1.04
es2015_arrow 96397 ns/iter (± 249) 94011 ns/iter (± 265) 1.03
es2015_block_scoped_fn 94142 ns/iter (± 289) 91728 ns/iter (± 133) 1.03
es2015_block_scoping 181060 ns/iter (± 151) 169581 ns/iter (± 470) 1.07

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

@github-actions
Copy link

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 2.

Benchmark suite Current: d623db4 Previous: 65ce5d1 Ratio
serialization of serde 279 ns/iter (± 0) 120 ns/iter (± 0) 2.33

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

CC: @kdy1

Please sign in to comment.