Skip to content

Commit

Permalink
perf(es/transforms): Make rename operator parallel (#4951)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 13, 2022
1 parent ddae14d commit 445d585
Show file tree
Hide file tree
Showing 3 changed files with 259 additions and 115 deletions.
12 changes: 10 additions & 2 deletions crates/swc_ecma_transforms_base/src/hygiene/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,11 @@ pub struct Config {
}

pub fn rename(map: &AHashMap<Id, JsWord>) -> impl '_ + Fold + VisitMut {
as_folder(Operator(map, Default::default()))
as_folder(Operator {
rename: map,
config: Default::default(),
extra: Default::default(),
})
}

/// See [hygiene_with_config] for doc. Creates a `hygiene` pass with default
Expand Down Expand Up @@ -202,7 +206,11 @@ impl Hygiene {
}

let ops = data.ops.into_inner();
n.visit_mut_with(&mut Operator(&ops.rename, self.config.clone()));
n.visit_mut_with(&mut Operator {
rename: &ops.rename,
config: self.config.clone(),
extra: Default::default(),
});
}
}

Expand Down

1 comment on commit 445d585

@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: 445d585 Previous: bf74d05 Ratio
es/full/minify/libraries/antd 1803866915 ns/iter (± 70042248) 1800978820 ns/iter (± 31212582) 1.00
es/full/minify/libraries/d3 429573996 ns/iter (± 9956337) 382405866 ns/iter (± 3696986) 1.12
es/full/minify/libraries/echarts 2121401886 ns/iter (± 22578555) 2049264502 ns/iter (± 20048399) 1.04
es/full/minify/libraries/jquery 89066329 ns/iter (± 2863230) 83283638 ns/iter (± 3403270) 1.07
es/full/minify/libraries/lodash 120078117 ns/iter (± 1116136) 125596993 ns/iter (± 657569) 0.96
es/full/minify/libraries/moment 50730752 ns/iter (± 1231820) 52603055 ns/iter (± 217468) 0.96
es/full/minify/libraries/react 15686237 ns/iter (± 59254) 17084607 ns/iter (± 864351) 0.92
es/full/minify/libraries/terser 455898566 ns/iter (± 7254353) 373705026 ns/iter (± 6496608) 1.22
es/full/minify/libraries/three 586140574 ns/iter (± 19875106) 497739722 ns/iter (± 16184291) 1.18
es/full/minify/libraries/typescript 3978751832 ns/iter (± 31755409) 3887916109 ns/iter (± 21947667) 1.02
es/full/minify/libraries/victory 737928341 ns/iter (± 14843569) 651114134 ns/iter (± 14790348) 1.13
es/full/minify/libraries/vue 144048126 ns/iter (± 5429357) 136828233 ns/iter (± 856331) 1.05
es/full/codegen/es3 34447 ns/iter (± 166) 34022 ns/iter (± 135) 1.01
es/full/codegen/es5 30338 ns/iter (± 120) 29960 ns/iter (± 129) 1.01
es/full/codegen/es2015 30351 ns/iter (± 143) 29962 ns/iter (± 132) 1.01
es/full/codegen/es2016 30345 ns/iter (± 133) 29973 ns/iter (± 126) 1.01
es/full/codegen/es2017 34403 ns/iter (± 176) 29940 ns/iter (± 128) 1.15
es/full/codegen/es2018 30337 ns/iter (± 109) 29933 ns/iter (± 129) 1.01
es/full/codegen/es2019 30323 ns/iter (± 148) 29961 ns/iter (± 122) 1.01
es/full/codegen/es2020 30337 ns/iter (± 147) 29936 ns/iter (± 127) 1.01
es/full/all/es3 191102233 ns/iter (± 9511971) 170684596 ns/iter (± 2689585) 1.12
es/full/all/es5 173876077 ns/iter (± 9057846) 173241642 ns/iter (± 8281382) 1.00
es/full/all/es2015 129085792 ns/iter (± 955850) 142937140 ns/iter (± 2608520) 0.90
es/full/all/es2016 144389063 ns/iter (± 461606) 143474648 ns/iter (± 2610776) 1.01
es/full/all/es2017 123716556 ns/iter (± 812109) 140190784 ns/iter (± 2540786) 0.88
es/full/all/es2018 120181096 ns/iter (± 901517) 139420474 ns/iter (± 3121559) 0.86
es/full/all/es2019 120110100 ns/iter (± 10255709) 116853482 ns/iter (± 8910200) 1.03
es/full/all/es2020 113784318 ns/iter (± 511159) 112265549 ns/iter (± 1065330) 1.01
es/full/parser 522797 ns/iter (± 73931) 517472 ns/iter (± 51598) 1.01
es/full/base/fixer 26830 ns/iter (± 227) 23818 ns/iter (± 141) 1.13
es/full/base/resolver_and_hygiene 124213 ns/iter (± 1582) 122821 ns/iter (± 1775) 1.01
serialization of ast node 160 ns/iter (± 0) 180 ns/iter (± 0) 0.89
serialization of serde 160 ns/iter (± 0) 181 ns/iter (± 0) 0.88

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

Please sign in to comment.