chore(ci): Fix benchmark action (#6582)

This commit is contained in:
Donny/강동윤 2022-12-06 21:24:55 +09:00 committed by GitHub
parent 6e5abdd9cc
commit d8adc58011
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 188 additions and 174 deletions

View File

@ -13,3 +13,6 @@ indexmap = "1.6.1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
swc_config_macro = { version = "0.1.0", path = "../swc_config_macro" }
[lib]
bench = false

View File

@ -9,6 +9,7 @@ repository = "https://github.com/swc-project/swc.git"
version = "0.1.0"
[lib]
bench = false
proc-macro = true
[dependencies]

View File

@ -7,8 +7,8 @@ license = "Apache-2.0"
name = "swc_core"
repository = "https://github.com/swc-project/swc.git"
version = "0.46.2"
[package.metadata.docs.rs]
features = [
[package.metadata.docs.rs]
features = [
"common_perf",
"allocator_node",
"base",
@ -23,10 +23,11 @@ features = [
"ecma_ast",
"trace_macro",
"plugin_transform",
]
rustdoc-args = ["--cfg", "docsrs"]
]
rustdoc-args = ["--cfg", "docsrs"]
[lib]
bench = false
doctest = false
[features]
@ -331,56 +332,56 @@ __visit = ["__ecma", "swc_ecma_visit"]
[dependencies]
# 3rd party dependencies
once_cell = {optional = true, version = "1.13.0"}
wasmer = {optional = true, version = "2.3.0", default-features = false}
wasmer-wasi = {optional = true, version = "2.3.0", default-features = false}
once_cell = { optional = true, version = "1.13.0" }
wasmer = { optional = true, version = "2.3.0", default-features = false }
wasmer-wasi = { optional = true, version = "2.3.0", default-features = false }
# swc_* dependencies
binding_macros = {optional = true, version = "0.22.2", path = "../binding_macros"}
swc = {optional = true, version = "0.234.2", path = "../swc"}
swc_atoms = {optional = true, version = "0.4.25", path = "../swc_atoms"}
swc_bundler = {optional = true, version = "0.193.6", path = "../swc_bundler"}
swc_cached = {optional = true, version = "0.3.15", path = "../swc_cached"}
swc_common = {optional = true, version = "0.29.19", path = "../swc_common"}
swc_css_ast = {optional = true, version = "0.129.2", path = "../swc_css_ast"}
swc_css_codegen = {optional = true, version = "0.139.2", path = "../swc_css_codegen"}
swc_css_minifier = {optional = true, version = "0.104.2", path = "../swc_css_minifier"}
swc_css_modules = {optional = true, version = "0.15.2", path = "../swc_css_modules"}
swc_css_parser = {optional = true, version = "0.138.2", path = "../swc_css_parser"}
swc_css_prefixer = {optional = true, version = "0.140.2", path = "../swc_css_prefixer"}
swc_css_utils = {optional = true, version = "0.126.2", path = "../swc_css_utils/"}
swc_css_visit = {optional = true, version = "0.128.2", path = "../swc_css_visit"}
swc_ecma_ast = {optional = true, version = "0.95.3", path = "../swc_ecma_ast"}
swc_ecma_codegen = {optional = true, version = "0.128.5", path = "../swc_ecma_codegen"}
swc_ecma_loader = {optional = true, version = "0.41.20", path = "../swc_ecma_loader"}
swc_ecma_minifier = {optional = true, version = "0.160.6", path = "../swc_ecma_minifier"}
swc_ecma_parser = {optional = true, version = "0.123.5", path = "../swc_ecma_parser"}
swc_ecma_preset_env = {optional = true, version = "0.175.5", path = "../swc_ecma_preset_env"}
swc_ecma_quote_macros = {optional = true, version = "0.34.5", path = "../swc_ecma_quote_macros"}
swc_ecma_transforms_base = {optional = true, version = "0.112.5", path = "../swc_ecma_transforms_base"}
swc_ecma_transforms_compat = {optional = true, version = "0.137.5", path = "../swc_ecma_transforms_compat"}
swc_ecma_transforms_module = {optional = true, version = "0.154.5", path = "../swc_ecma_transforms_module"}
swc_ecma_transforms_optimization = {optional = true, version = "0.168.5", path = "../swc_ecma_transforms_optimization"}
swc_ecma_transforms_proposal = {optional = true, version = "0.145.5", path = "../swc_ecma_transforms_proposal"}
swc_ecma_transforms_react = {optional = true, version = "0.156.5", path = "../swc_ecma_transforms_react"}
swc_ecma_transforms_testing = {optional = true, version = "0.115.6", path = "../swc_ecma_transforms_testing"}
swc_ecma_transforms_typescript = {optional = true, version = "0.160.5", path = "../swc_ecma_transforms_typescript"}
swc_ecma_utils = {optional = true, version = "0.106.5", path = "../swc_ecma_utils"}
swc_ecma_visit = {optional = true, version = "0.81.3", path = "../swc_ecma_visit"}
swc_node_base = {optional = true, version = "0.5.8", path = "../swc_node_base"}
swc_node_bundler = {optional = true, version = "0.20.2", path = "../swc_node_bundler"}
swc_nodejs_common = {optional = true, version = "0.0.4", path = "../swc_nodejs_common"}
swc_plugin = {optional = true, version = "0.90.0", path = "../swc_plugin"}
swc_plugin_macro = {optional = true, version = "0.9.10", path = "../swc_plugin_macro"}
swc_plugin_proxy = {optional = true, version = "0.23.3", path = "../swc_plugin_proxy"}
swc_trace_macro = {optional = true, version = "0.1.2", path = "../swc_trace_macro"}
testing = {optional = true, version = "0.31.20", path = "../testing"}
binding_macros = { optional = true, version = "0.22.2", path = "../binding_macros" }
swc = { optional = true, version = "0.234.2", path = "../swc" }
swc_atoms = { optional = true, version = "0.4.25", path = "../swc_atoms" }
swc_bundler = { optional = true, version = "0.193.6", path = "../swc_bundler" }
swc_cached = { optional = true, version = "0.3.15", path = "../swc_cached" }
swc_common = { optional = true, version = "0.29.19", path = "../swc_common" }
swc_css_ast = { optional = true, version = "0.129.2", path = "../swc_css_ast" }
swc_css_codegen = { optional = true, version = "0.139.2", path = "../swc_css_codegen" }
swc_css_minifier = { optional = true, version = "0.104.2", path = "../swc_css_minifier" }
swc_css_modules = { optional = true, version = "0.15.2", path = "../swc_css_modules" }
swc_css_parser = { optional = true, version = "0.138.2", path = "../swc_css_parser" }
swc_css_prefixer = { optional = true, version = "0.140.2", path = "../swc_css_prefixer" }
swc_css_utils = { optional = true, version = "0.126.2", path = "../swc_css_utils/" }
swc_css_visit = { optional = true, version = "0.128.2", path = "../swc_css_visit" }
swc_ecma_ast = { optional = true, version = "0.95.3", path = "../swc_ecma_ast" }
swc_ecma_codegen = { optional = true, version = "0.128.5", path = "../swc_ecma_codegen" }
swc_ecma_loader = { optional = true, version = "0.41.20", path = "../swc_ecma_loader" }
swc_ecma_minifier = { optional = true, version = "0.160.6", path = "../swc_ecma_minifier" }
swc_ecma_parser = { optional = true, version = "0.123.5", path = "../swc_ecma_parser" }
swc_ecma_preset_env = { optional = true, version = "0.175.5", path = "../swc_ecma_preset_env" }
swc_ecma_quote_macros = { optional = true, version = "0.34.5", path = "../swc_ecma_quote_macros" }
swc_ecma_transforms_base = { optional = true, version = "0.112.5", path = "../swc_ecma_transforms_base" }
swc_ecma_transforms_compat = { optional = true, version = "0.137.5", path = "../swc_ecma_transforms_compat" }
swc_ecma_transforms_module = { optional = true, version = "0.154.5", path = "../swc_ecma_transforms_module" }
swc_ecma_transforms_optimization = { optional = true, version = "0.168.5", path = "../swc_ecma_transforms_optimization" }
swc_ecma_transforms_proposal = { optional = true, version = "0.145.5", path = "../swc_ecma_transforms_proposal" }
swc_ecma_transforms_react = { optional = true, version = "0.156.5", path = "../swc_ecma_transforms_react" }
swc_ecma_transforms_testing = { optional = true, version = "0.115.6", path = "../swc_ecma_transforms_testing" }
swc_ecma_transforms_typescript = { optional = true, version = "0.160.5", path = "../swc_ecma_transforms_typescript" }
swc_ecma_utils = { optional = true, version = "0.106.5", path = "../swc_ecma_utils" }
swc_ecma_visit = { optional = true, version = "0.81.3", path = "../swc_ecma_visit" }
swc_node_base = { optional = true, version = "0.5.8", path = "../swc_node_base" }
swc_node_bundler = { optional = true, version = "0.20.2", path = "../swc_node_bundler" }
swc_nodejs_common = { optional = true, version = "0.0.4", path = "../swc_nodejs_common" }
swc_plugin = { optional = true, version = "0.90.0", path = "../swc_plugin" }
swc_plugin_macro = { optional = true, version = "0.9.10", path = "../swc_plugin_macro" }
swc_plugin_proxy = { optional = true, version = "0.23.3", path = "../swc_plugin_proxy" }
swc_trace_macro = { optional = true, version = "0.1.2", path = "../swc_trace_macro" }
testing = { optional = true, version = "0.31.20", path = "../testing" }
# TODO: eventually swc_plugin_runner needs to remove default features
swc_css_compat = {version = "0.14.2", path = "../swc_css_compat", optional = true}
swc_plugin_runner = {optional = true, version = "0.79.2", path = "../swc_plugin_runner", default-features = false}
swc_css_compat = { version = "0.14.2", path = "../swc_css_compat", optional = true }
swc_plugin_runner = { optional = true, version = "0.79.2", path = "../swc_plugin_runner", default-features = false }
[build-dependencies]
vergen = {version = "7.3.2", default-features = false, features = ["cargo"]}
vergen = { version = "7.3.2", default-features = false, features = ["cargo"] }
[dev-dependencies]
anyhow = "1.0.66"

View File

@ -2,10 +2,12 @@ use criterion::{black_box, criterion_group, criterion_main, Bencher, Criterion};
use swc_common::{comments::SingleThreadedComments, FileName, Mark};
use swc_ecma_parser::{Parser, StringInput, Syntax};
use swc_ecma_preset_env::{preset_env, Config};
use swc_ecma_transforms::helpers::{Helpers, HELPERS};
use swc_ecma_visit::FoldWith;
fn run(b: &mut Bencher, src: &str, config: Config) {
let _ = ::testing::run_test(false, |cm, handler| {
HELPERS.set(&Helpers::new(true), || {
let fm = cm.new_source_file(FileName::Anon, src.into());
let mut parser = Parser::new(Syntax::default(), StringInput::from(&*fm), None);
@ -28,6 +30,7 @@ fn run(b: &mut Bencher, src: &str, config: Config) {
b.iter(|| black_box(module.clone().fold_with(&mut folder)));
Ok(())
})
});
}

View File

@ -262,7 +262,7 @@ fn es2015_duplicate_keys(b: &mut Bencher) {
fn es2015_parameters(b: &mut Bencher) {
run(b, || {
swc_ecma_transforms_compat::es2015::parameters(Default::default(), Default::default())
swc_ecma_transforms_compat::es2015::parameters(Default::default(), Mark::new())
});
}

View File

@ -2,7 +2,9 @@ use std::{io::stderr, sync::Arc};
use criterion::{black_box, criterion_group, criterion_main, Bencher, Criterion};
use swc::config::IsModule;
use swc_common::{errors::Handler, FileName, FilePathMapping, Mark, SourceFile, SourceMap};
use swc_common::{
errors::Handler, FileName, FilePathMapping, Mark, SourceFile, SourceMap, GLOBALS,
};
use swc_ecma_ast::{EsVersion, Program};
use swc_ecma_parser::Syntax;
use swc_ecma_transforms::{compat::es2020, resolver, typescript};
@ -41,6 +43,7 @@ fn parse(c: &swc::Compiler, src: &str) -> (Arc<SourceFile>, Program) {
}
fn babelify_only(b: &mut Bencher) {
GLOBALS.set(&Default::default(), || {
let c = mk();
let (fm, module) = parse(&c, SOURCE);
let handler = Handler::with_emitter_writer(Box::new(stderr()), Some(c.cm.clone()));
@ -66,9 +69,11 @@ fn babelify_only(b: &mut Bencher) {
let babel_ast = program.babelify(&ctx);
black_box(babel_ast)
});
})
}
fn parse_and_babelify(b: &mut Bencher, _name: &str, src: &str) {
GLOBALS.set(&Default::default(), || {
let c = mk();
b.iter(|| {
@ -82,6 +87,7 @@ fn parse_and_babelify(b: &mut Bencher, _name: &str, src: &str) {
let babel_ast = program.babelify(&ctx);
black_box(babel_ast);
});
})
}
fn bench_cases(c: &mut Criterion) {

View File

@ -1249,7 +1249,7 @@ dependencies = [
[[package]]
name = "swc_atoms"
version = "0.4.24"
version = "0.4.25"
dependencies = [
"once_cell",
"rkyv",
@ -1262,7 +1262,7 @@ dependencies = [
[[package]]
name = "swc_common"
version = "0.29.14"
version = "0.29.19"
dependencies = [
"ahash",
"anyhow",
@ -1293,7 +1293,7 @@ dependencies = [
[[package]]
name = "swc_core"
version = "0.43.3"
version = "0.46.1"
dependencies = [
"once_cell",
"swc_atoms",
@ -1310,7 +1310,7 @@ dependencies = [
[[package]]
name = "swc_ecma_ast"
version = "0.94.19"
version = "0.95.3"
dependencies = [
"bitflags",
"is-macro",
@ -1326,7 +1326,7 @@ dependencies = [
[[package]]
name = "swc_ecma_codegen"
version = "0.127.31"
version = "0.128.5"
dependencies = [
"memchr",
"num-bigint",
@ -1354,7 +1354,7 @@ dependencies = [
[[package]]
name = "swc_ecma_parser"
version = "0.122.26"
version = "0.123.5"
dependencies = [
"either",
"enum_kind",
@ -1371,7 +1371,7 @@ dependencies = [
[[package]]
name = "swc_ecma_testing"
version = "0.20.7"
version = "0.20.8"
dependencies = [
"anyhow",
"hex",
@ -1381,7 +1381,7 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_base"
version = "0.111.47"
version = "0.112.5"
dependencies = [
"better_scoped_tls",
"bitflags",
@ -1401,7 +1401,7 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_testing"
version = "0.114.33"
version = "0.115.6"
dependencies = [
"ansi_term",
"anyhow",
@ -1425,7 +1425,7 @@ dependencies = [
[[package]]
name = "swc_ecma_utils"
version = "0.105.33"
version = "0.106.5"
dependencies = [
"indexmap",
"num_cpus",
@ -1440,7 +1440,7 @@ dependencies = [
[[package]]
name = "swc_ecma_visit"
version = "0.80.19"
version = "0.81.3"
dependencies = [
"num-bigint",
"swc_atoms",
@ -1462,7 +1462,7 @@ dependencies = [
[[package]]
name = "swc_error_reporters"
version = "0.13.14"
version = "0.13.20"
dependencies = [
"anyhow",
"miette",
@ -1498,7 +1498,7 @@ dependencies = [
[[package]]
name = "swc_plugin_macro"
version = "0.9.9"
version = "0.9.10"
dependencies = [
"proc-macro2",
"quote",
@ -1507,7 +1507,7 @@ dependencies = [
[[package]]
name = "swc_plugin_proxy"
version = "0.22.19"
version = "0.23.3"
dependencies = [
"better_scoped_tls",
"rkyv",
@ -1592,7 +1592,7 @@ dependencies = [
[[package]]
name = "testing"
version = "0.31.14"
version = "0.31.20"
dependencies = [
"ansi_term",
"difference",