From ebb6eb8c670f92049dfd4776ad86d36a564279ed Mon Sep 17 00:00:00 2001 From: Boshen Date: Thu, 20 Jun 2024 15:07:17 +0800 Subject: [PATCH] chore(coverage): add a prepass benchmark --- crates/oxc_minifier/examples/minifier.rs | 3 +-- crates/oxc_minifier/src/compressor/mod.rs | 3 +-- crates/oxc_minifier/src/lib.rs | 2 +- tasks/benchmark/benches/minifier.rs | 24 +++++++++++++++++++++-- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/crates/oxc_minifier/examples/minifier.rs b/crates/oxc_minifier/examples/minifier.rs index f2017f5590c0f..b4f4be6d32914 100644 --- a/crates/oxc_minifier/examples/minifier.rs +++ b/crates/oxc_minifier/examples/minifier.rs @@ -10,8 +10,7 @@ use pico_args::Arguments; // Instruction: // create a `test.js`, -// run `cargo run -p oxc_minifier --example minifier` -// or `just watch "run -p oxc_minifier --example minifier"` +// run `cargo run -p oxc_minifier --example minifier` or `just example minifier` fn main() -> std::io::Result<()> { let mut args = Arguments::from_env(); diff --git a/crates/oxc_minifier/src/compressor/mod.rs b/crates/oxc_minifier/src/compressor/mod.rs index 5d4acdd82a252..a414008e00d75 100644 --- a/crates/oxc_minifier/src/compressor/mod.rs +++ b/crates/oxc_minifier/src/compressor/mod.rs @@ -20,8 +20,7 @@ use oxc_syntax::{ precedence::GetPrecedence, }; -pub use self::options::CompressOptions; -use self::prepass::Prepass; +pub use self::{options::CompressOptions, prepass::Prepass}; pub struct Compressor<'a> { ast: AstBuilder<'a>, diff --git a/crates/oxc_minifier/src/lib.rs b/crates/oxc_minifier/src/lib.rs index 930092a3cd587..cdefae57c7fa4 100644 --- a/crates/oxc_minifier/src/lib.rs +++ b/crates/oxc_minifier/src/lib.rs @@ -7,7 +7,7 @@ use oxc_allocator::Allocator; use oxc_ast::ast::Program; pub use crate::{ - compressor::{CompressOptions, Compressor}, + compressor::{CompressOptions, Compressor, Prepass}, mangler::ManglerBuilder, }; diff --git a/tasks/benchmark/benches/minifier.rs b/tasks/benchmark/benches/minifier.rs index 033d0bc9db160..bfb68e9a29cd2 100644 --- a/tasks/benchmark/benches/minifier.rs +++ b/tasks/benchmark/benches/minifier.rs @@ -1,6 +1,6 @@ use oxc_allocator::Allocator; use oxc_benchmark::{criterion_group, criterion_main, BenchmarkId, Criterion}; -use oxc_minifier::{Minifier, MinifierOptions}; +use oxc_minifier::{Minifier, MinifierOptions, Prepass}; use oxc_parser::Parser; use oxc_span::SourceType; use oxc_tasks_common::TestFiles; @@ -27,5 +27,25 @@ fn bench_minifier(criterion: &mut Criterion) { group.finish(); } -criterion_group!(minifier, bench_minifier); +fn bench_passes(criterion: &mut Criterion) { + let mut group = criterion.benchmark_group("prepass"); + + for file in TestFiles::minimal().files() { + let source_type = SourceType::from_path(&file.file_name).unwrap(); + group.bench_with_input( + BenchmarkId::from_parameter(&file.file_name), + &file.source_text, + |b, source_text| { + let allocator = Allocator::default(); + let program = Parser::new(&allocator, source_text, source_type).parse().program; + let program = allocator.alloc(program); + b.iter(|| Prepass::new(&allocator).build(program)); + }, + ); + } + + group.finish(); +} + +criterion_group!(minifier, bench_minifier, bench_passes); criterion_main!(minifier);