Skip to content

Commit

Permalink
perf(es/transforms): Exclude old inlining pass (#6203)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #6194.
  • Loading branch information
kdy1 committed Oct 19, 2022
1 parent b48ec88 commit 27896f4
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 10 deletions.
4 changes: 2 additions & 2 deletions crates/swc/benches/bugs.rs
Expand Up @@ -2,7 +2,7 @@ extern crate swc_node_base;

use std::{io::stderr, path::Path};

use criterion::{criterion_group, criterion_main, Bencher, Criterion};
use criterion::{black_box, criterion_group, criterion_main, Bencher, Criterion};
use swc::config::{Config, IsModule, Options};
use swc_common::{errors::Handler, sync::Lrc, FilePathMapping, SourceMap};
use swc_ecma_utils::swc_common::GLOBALS;
Expand Down Expand Up @@ -37,7 +37,7 @@ fn bench_file(b: &mut Bencher, path: &Path) {
.unwrap()
})
};
println!("{}", result.code);
black_box(result);
});
}

Expand Down
2 changes: 1 addition & 1 deletion crates/swc/tests/fixture/issues-2xxx/2108/output/index.js
@@ -1,6 +1,6 @@
"use strict";
function foo() {
let arr;
let arr = [];
arr = [
1,
2,
Expand Down
Expand Up @@ -25,7 +25,6 @@ pub struct Config {
pub fn simplifier(unresolved_mark: Mark, c: Config) -> impl RepeatedJsPass {
Repeat::new(chain!(
expr_simplifier(unresolved_mark, c.expr),
inlining::inlining(c.inlining),
dead_branch_remover(unresolved_mark),
dce::dce(c.dce, unresolved_mark)
))
Expand Down
25 changes: 21 additions & 4 deletions crates/swc_ecma_transforms_optimization/tests/simplify.rs
Expand Up @@ -8,7 +8,9 @@ use swc_ecma_transforms_base::{helpers::inject_helpers, resolver};
use swc_ecma_transforms_compat::{es2015, es2016, es2017, es2018, es2022::class_properties, es3};
use swc_ecma_transforms_module::{common_js::common_js, import_analysis::import_analyzer};
use swc_ecma_transforms_optimization::simplify::{
dce::dce, dead_branch_remover, expr_simplifier, inlining::inlining, simplifier,
dce::{self, dce},
dead_branch_remover, expr_simplifier,
inlining::{self, inlining},
};
use swc_ecma_transforms_proposal::decorators;
use swc_ecma_transforms_testing::{test, test_transform};
Expand All @@ -23,7 +25,12 @@ fn test(src: &str, expected: &str) {

chain!(
resolver(unresolved_mark, top_level_mark, false),
simplifier(unresolved_mark, Default::default())
Repeat::new(chain!(
expr_simplifier(unresolved_mark, Default::default()),
inlining::inlining(Default::default()),
dead_branch_remover(unresolved_mark),
dce::dce(Default::default(), unresolved_mark)
)),
)
},
src,
Expand All @@ -46,7 +53,12 @@ macro_rules! to {

chain!(
resolver(unresolved_mark, top_level_mark, false),
simplifier(unresolved_mark, Default::default())
Repeat::new(chain!(
expr_simplifier(unresolved_mark, Default::default()),
inlining::inlining(Default::default()),
dead_branch_remover(unresolved_mark),
dce::dce(Default::default(), unresolved_mark)
)),
)
},
$name,
Expand Down Expand Up @@ -574,7 +586,12 @@ test!(
resolver(unresolved_mark, top_level_mark, false),
strip(top_level_mark),
class_properties(Some(t.comments.clone()), Default::default()),
simplifier(unresolved_mark, Default::default()),
Repeat::new(chain!(
expr_simplifier(unresolved_mark, Default::default()),
inlining::inlining(Default::default()),
dead_branch_remover(unresolved_mark),
dce::dce(Default::default(), unresolved_mark)
)),
es2018(Default::default()),
es2017(
Default::default(),
Expand Down
3 changes: 1 addition & 2 deletions crates/swc_html_parser/tests/html5lib_tests.rs
Expand Up @@ -799,10 +799,9 @@ fn html5lib_test_tree_construction(input: PathBuf) {
|| file_name.contains("svg_dat.5.fragment_tbody")
|| file_name.contains("svg_dat.6.fragment_tbody")
|| file_name.contains("svg_dat.7.fragment_tbody")
|| file_name.contains("foreign-fragment_dat.3.fragment_svg_path")
{
errors.len() - 1
} else if file_name.contains("foreign-fragment_dat.3.fragment_svg_path") {
errors.len() - 1
} else {
errors.len()
};
Expand Down

1 comment on commit 27896f4

@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: 27896f4 Previous: 6c170e5 Ratio
es/full/bugs-1 374708 ns/iter (± 32750)
es/full/minify/libraries/antd 1895751577 ns/iter (± 21523509) 1871640101 ns/iter (± 70308367) 1.01
es/full/minify/libraries/d3 494192137 ns/iter (± 93926042) 422338956 ns/iter (± 25431013) 1.17
es/full/minify/libraries/echarts 1800190141 ns/iter (± 152745755) 1613614313 ns/iter (± 52659089) 1.12
es/full/minify/libraries/jquery 113958951 ns/iter (± 10620325) 104439031 ns/iter (± 7999130) 1.09
es/full/minify/libraries/lodash 127087182 ns/iter (± 49398199) 112544652 ns/iter (± 6291418) 1.13
es/full/minify/libraries/moment 65646363 ns/iter (± 11151521) 63216891 ns/iter (± 4901533) 1.04
es/full/minify/libraries/react 21744994 ns/iter (± 1479840) 22566100 ns/iter (± 2928107) 0.96
es/full/minify/libraries/terser 340289446 ns/iter (± 30887387) 303240878 ns/iter (± 12480765) 1.12
es/full/minify/libraries/three 614909961 ns/iter (± 71872684) 581965703 ns/iter (± 36805955) 1.06
es/full/minify/libraries/typescript 3611576399 ns/iter (± 147913647) 3536690542 ns/iter (± 97397423) 1.02
es/full/minify/libraries/victory 854858180 ns/iter (± 29740583) 873776198 ns/iter (± 22047905) 0.98
es/full/minify/libraries/vue 160368182 ns/iter (± 11836301) 143216646 ns/iter (± 18123790) 1.12
es/full/codegen/es3 35754 ns/iter (± 3321) 34878 ns/iter (± 3060) 1.03
es/full/codegen/es5 35284 ns/iter (± 1226) 34104 ns/iter (± 1796) 1.03
es/full/codegen/es2015 36706 ns/iter (± 4245) 34112 ns/iter (± 3848) 1.08
es/full/codegen/es2016 35260 ns/iter (± 3008) 35161 ns/iter (± 4884) 1.00
es/full/codegen/es2017 35248 ns/iter (± 2495) 34031 ns/iter (± 4156) 1.04
es/full/codegen/es2018 35005 ns/iter (± 1762) 33898 ns/iter (± 1360) 1.03
es/full/codegen/es2019 35585 ns/iter (± 2862) 33557 ns/iter (± 558) 1.06
es/full/codegen/es2020 35796 ns/iter (± 10968) 35259 ns/iter (± 24656) 1.02
es/full/all/es3 227973473 ns/iter (± 25303507) 205224636 ns/iter (± 24947343) 1.11
es/full/all/es5 204443882 ns/iter (± 16966537) 216246319 ns/iter (± 21942223) 0.95
es/full/all/es2015 158674105 ns/iter (± 20111933) 155835227 ns/iter (± 10432809) 1.02
es/full/all/es2016 180409133 ns/iter (± 19006825) 155873937 ns/iter (± 17805694) 1.16
es/full/all/es2017 171952464 ns/iter (± 19818755) 151297160 ns/iter (± 9441285) 1.14
es/full/all/es2018 161231415 ns/iter (± 13632694) 168873083 ns/iter (± 17035204) 0.95
es/full/all/es2019 143038346 ns/iter (± 12052467) 153457456 ns/iter (± 17016914) 0.93
es/full/all/es2020 139128608 ns/iter (± 4637336) 144586437 ns/iter (± 13168394) 0.96
es/full/parser 761644 ns/iter (± 97451) 743461 ns/iter (± 29385) 1.02
es/full/base/fixer 27025 ns/iter (± 2956) 27042 ns/iter (± 1136) 1.00
es/full/base/resolver_and_hygiene 96477 ns/iter (± 5171) 95534 ns/iter (± 6270) 1.01
serialization of ast node 216 ns/iter (± 7) 217 ns/iter (± 3) 1.00
serialization of serde 219 ns/iter (± 8) 217 ns/iter (± 6) 1.01

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

Please sign in to comment.