Skip to content

Commit

Permalink
refactor(dbg-swc): Cleanup and document reducer (#6647)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Dec 14, 2022
1 parent 56ab0b0 commit b13a079
Show file tree
Hide file tree
Showing 11 changed files with 105 additions and 203 deletions.
Expand Up @@ -16,21 +16,22 @@ use tracing::info;

use crate::{bundle::bundle, util::print_js};

/// Execute a javascript file after performing some preprocessing.
/// [Experimental] Execute a javascript file after performing some
/// preprocessing.
#[derive(Debug, Subcommand)]
pub enum TestCommand {
pub enum ExecForTestingCommand {
MinifiedBundle(TestMinifiedBundleCommand),
}

impl TestCommand {
impl ExecForTestingCommand {
pub fn run(self, cm: Arc<SourceMap>) -> Result<()> {
let _timer = timer!("test");

let output = {
let _timer = timer!("process");

match self {
TestCommand::MinifiedBundle(cmd) => cmd.run(cm),
ExecForTestingCommand::MinifiedBundle(cmd) => cmd.run(cm),
}?
};

Expand Down
Expand Up @@ -10,7 +10,8 @@ use crate::util::{
print_js,
};

/// Opens vscode for diffing output of swc minifier and terser/esbuild
/// [Experimental] Opens vscode for diffing output of swc minifier and
/// terser/esbuild
#[derive(Debug, Args)]
pub struct CompareCommand {
pub path: PathBuf,
Expand Down
Expand Up @@ -18,7 +18,8 @@ use crate::util::{
print_js, wrap_task,
};

/// Ensure that we are performing better than other minification tools.
/// [Experimental] Ensure that we are performing better than other minification
/// tools.
#[derive(Debug, Args)]
pub struct EnsureSize {
#[clap(long)]
Expand Down
35 changes: 35 additions & 0 deletions crates/dbg-swc/src/es/minifier/mod.rs
@@ -0,0 +1,35 @@
use std::sync::Arc;

use anyhow::Result;
use clap::Subcommand;
use swc_common::SourceMap;

use self::{
compare::CompareCommand, ensure_size::EnsureSize, next::NextCommand, reduce::ReduceCommand,
};

mod compare;
mod ensure_size;
mod next;
mod reduce;

/// Debug the ECMAScript Minifier.
#[derive(Debug, Subcommand)]
pub enum MinifierCommand {
#[clap(subcommand)]
Next(NextCommand),
Reduce(ReduceCommand),
Compare(CompareCommand),
EnsureSize(EnsureSize),
}

impl MinifierCommand {
pub fn run(self, cm: Arc<SourceMap>) -> Result<()> {
match self {
MinifierCommand::Next(cmd) => cmd.run(cm),
MinifierCommand::Reduce(cmd) => cmd.run(cm),
MinifierCommand::EnsureSize(cmd) => cmd.run(cm),
MinifierCommand::Compare(cmd) => cmd.run(cm),
}
}
}
Expand Up @@ -8,7 +8,7 @@ use self::check_size::CheckSizeCommand;

mod check_size;

/// Debug the minifier issue related to next.js application.
/// [Experimental] Debug the minifier issue related to next.js application.
#[derive(Debug, Subcommand)]
pub enum NextCommand {
CheckSize(CheckSizeCommand),
Expand Down
Expand Up @@ -18,14 +18,38 @@ use crate::{
CREDUCE_INPUT_ENV_VAR, CREDUCE_MODE_ENV_VAR,
};

/// Reduce input files to minimal reproduction cases
///
/// This command requires `creduce` and `terser` in PATH.
///
/// For `creduce`, see https://embed.cs.utah.edu/creduce/ for more information.
/// If you are using homebrew, install it with `brew install creduce`.
///
/// For `terser`, this command uses `npx terser` to invoke `terser` for
/// comparison.
///
/// After reducing, the reduced file will be moved to `.swc-reduce` directory.
///
///
/// Note: This tool is not perfect, and it may reduce input file way too much,
/// or fail to reduce an input file.
#[derive(Debug, Args)]
pub struct ReduceCommand {
/// The path to the input file. You can specify a directory if you want to
/// reduce every '.js' file within a directory, in a recursive manner.
pub path: PathBuf,

/// In 'size' mode, this command tries to find the minimal input file where
/// the size of the output file of swc minifier is larger than the one from
/// terser.
///
/// In 'semantics' mode, this command tries to reduce the input file to a
/// minimal reproduction case which triggers the bug.
#[clap(long, arg_enum)]
pub mode: ReduceMode,

/// If true, the input file will be removed after the reduction.
/// If true, the input file will be removed after the reduction. This can be
/// used for pausing and resuming the process of reducing.
#[clap(long)]
pub remove: bool,
}
Expand Down Expand Up @@ -115,9 +139,9 @@ fn move_to_data_dir(input_path: &Path) -> Result<PathBuf> {
let result = hasher.finalize();
let hash_str = format!("{:x}", result);

create_dir_all(format!("data/{}", hash_str)).context("failed to create `.data`")?;
create_dir_all(format!(".swc-reduce/{}", hash_str)).context("failed to create `.data`")?;

let to = PathBuf::from(format!("data/{}/input.js", hash_str));
let to = PathBuf::from(format!(".swc-reduce/{}/input.js", hash_str));
fs::write(&to, src.as_bytes()).context("failed to write")?;

Ok(to)
Expand Down
28 changes: 28 additions & 0 deletions crates/dbg-swc/src/es/mod.rs
@@ -0,0 +1,28 @@
use std::sync::Arc;

use anyhow::Result;
use clap::Subcommand;
use swc_common::SourceMap;

use self::{exec_test::ExecForTestingCommand, minifier::MinifierCommand};

mod exec_test;
mod minifier;

/// Debug modules related to ECMAScript
#[derive(Debug, Subcommand)]
pub(crate) enum EsCommand {
#[clap(subcommand)]
Minifier(MinifierCommand),
#[clap(subcommand)]
ExecForTesting(ExecForTestingCommand),
}

impl EsCommand {
pub fn run(self, cm: Arc<SourceMap>) -> Result<()> {
match self {
Self::Minifier(cmd) => cmd.run(cm),
Self::ExecForTesting(cmd) => cmd.run(cm),
}
}
}
35 changes: 5 additions & 30 deletions crates/dbg-swc/src/main.rs
Expand Up @@ -2,23 +2,19 @@ use std::{env, path::PathBuf, str::FromStr, sync::Arc};

use anyhow::{bail, Result};
use clap::{StructOpt, Subcommand};
use es::EsCommand;
use swc_common::{
errors::{ColorConfig, HANDLER},
Globals, SourceMap, GLOBALS,
};
use swc_error_reporters::handler::{try_with_handler, HandlerOpts};
use tracing_subscriber::EnvFilter;

use self::{
minify::MinifyCommand,
test::TestCommand,
util::{minifier::get_esbuild_output, print_js},
};
use self::util::print_js;
use crate::util::minifier::{get_minified, get_terser_output};

mod bundle;
mod minify;
mod test;
mod es;
mod util;

const CREDUCE_INPUT_ENV_VAR: &str = "CREDUCE_INPUT";
Expand All @@ -34,9 +30,7 @@ struct AppArgs {
#[derive(Debug, Subcommand)]
enum Cmd {
#[clap(subcommand)]
Minify(MinifyCommand),
#[clap(subcommand)]
Test(TestCommand),
Es(EsCommand),
}

fn init() -> Result<()> {
Expand Down Expand Up @@ -89,24 +83,6 @@ fn main() -> Result<()> {
return Ok(());
}

// We only care about length, so we can replace it.
//
// We target es5, but esbuild does not support it
let swc_output = swc_output.replace("\\n", "_");

let esbuild_output = get_esbuild_output(&input, true)?;

if swc_output.len() > esbuild_output.len() {
// It's interesting, as our output is larger than esbuild's.
return Ok(());
}

println!(
"swc size = {}, esbuild size = {}",
swc_output.len(),
esbuild_output.len()
);

bail!("We don't care about this file")
} else if mode == "SEMANTICS" {
let m = get_minified(cm.clone(), &input, true, false)?;
Expand Down Expand Up @@ -142,8 +118,7 @@ fn main() -> Result<()> {
|handler| {
GLOBALS.set(&Globals::default(), || {
HANDLER.set(handler, || match args.cmd {
Cmd::Minify(cmd) => cmd.run(cm),
Cmd::Test(cmd) => cmd.run(cm),
Cmd::Es(cmd) => cmd.run(cm),
})
})
},
Expand Down
124 changes: 0 additions & 124 deletions crates/dbg-swc/src/minify/diff_options.rs

This file was deleted.

1 comment on commit b13a079

@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: b13a079 Previous: 5d0dc6e Ratio
es/full/bugs-1 309164 ns/iter (± 8660) 298265 ns/iter (± 8793) 1.04
es/full/minify/libraries/antd 1658497902 ns/iter (± 32551585) 1517172182 ns/iter (± 20585075) 1.09
es/full/minify/libraries/d3 336739727 ns/iter (± 5737534) 310668546 ns/iter (± 3938005) 1.08
es/full/minify/libraries/echarts 1404285052 ns/iter (± 14739762) 1295713808 ns/iter (± 11112022) 1.08
es/full/minify/libraries/jquery 91683329 ns/iter (± 1307883) 88440245 ns/iter (± 1117761) 1.04
es/full/minify/libraries/lodash 110280854 ns/iter (± 1280948) 105027849 ns/iter (± 753516) 1.05
es/full/minify/libraries/moment 54465987 ns/iter (± 658966) 53813707 ns/iter (± 2733556) 1.01
es/full/minify/libraries/react 19999513 ns/iter (± 313779) 19177023 ns/iter (± 154661) 1.04
es/full/minify/libraries/terser 263450606 ns/iter (± 2847287) 240074142 ns/iter (± 1882043) 1.10
es/full/minify/libraries/three 475276523 ns/iter (± 5883082) 431015790 ns/iter (± 5638935) 1.10
es/full/minify/libraries/typescript 3141246203 ns/iter (± 17535061) 2978173793 ns/iter (± 27359410) 1.05
es/full/minify/libraries/victory 719105159 ns/iter (± 7230620) 621760485 ns/iter (± 6419309) 1.16
es/full/minify/libraries/vue 136853527 ns/iter (± 1514360) 128230071 ns/iter (± 1697534) 1.07
es/full/codegen/es3 27600 ns/iter (± 64) 27555 ns/iter (± 293) 1.00
es/full/codegen/es5 27550 ns/iter (± 84) 26846 ns/iter (± 202) 1.03
es/full/codegen/es2015 27614 ns/iter (± 62) 26995 ns/iter (± 215) 1.02
es/full/codegen/es2016 27655 ns/iter (± 60) 26954 ns/iter (± 210) 1.03
es/full/codegen/es2017 27627 ns/iter (± 59) 27748 ns/iter (± 43) 1.00
es/full/codegen/es2018 27569 ns/iter (± 78) 26945 ns/iter (± 191) 1.02
es/full/codegen/es2019 27640 ns/iter (± 61) 26896 ns/iter (± 276) 1.03
es/full/codegen/es2020 27623 ns/iter (± 75) 26967 ns/iter (± 231) 1.02
es/full/all/es3 171342891 ns/iter (± 7223138) 168083415 ns/iter (± 3366374) 1.02
es/full/all/es5 162663744 ns/iter (± 1863984) 160999986 ns/iter (± 2405009) 1.01
es/full/all/es2015 121591467 ns/iter (± 1353148) 118485187 ns/iter (± 2101046) 1.03
es/full/all/es2016 120319700 ns/iter (± 1546610) 117946240 ns/iter (± 951271) 1.02
es/full/all/es2017 120908342 ns/iter (± 2080854) 117642795 ns/iter (± 507114) 1.03
es/full/all/es2018 118387830 ns/iter (± 5068178) 115478364 ns/iter (± 1492077) 1.03
es/full/all/es2019 118411709 ns/iter (± 1796243) 114588699 ns/iter (± 969155) 1.03
es/full/all/es2020 114977447 ns/iter (± 2695421) 110501595 ns/iter (± 1052836) 1.04
es/full/parser 504654 ns/iter (± 8155) 490815 ns/iter (± 8105) 1.03
es/full/base/fixer 22061 ns/iter (± 19) 21967 ns/iter (± 20) 1.00
es/full/base/resolver_and_hygiene 77142 ns/iter (± 161) 75953 ns/iter (± 813) 1.02
serialization of ast node 143 ns/iter (± 0) 138 ns/iter (± 1) 1.04
serialization of serde 126 ns/iter (± 0) 125 ns/iter (± 0) 1.01
css/minify/libraries/bootstrap 27681239 ns/iter (± 325892) 26603211 ns/iter (± 169936) 1.04
css/visitor/compare/clone 2074437 ns/iter (± 9519) 2074416 ns/iter (± 33781) 1.00
css/visitor/compare/visit_mut_span 2267634 ns/iter (± 6582) 2255488 ns/iter (± 7936) 1.01
css/visitor/compare/visit_mut_span_panic 2339508 ns/iter (± 8807) 2297958 ns/iter (± 7415) 1.02
css/visitor/compare/fold_span 3002266 ns/iter (± 19137) 2976678 ns/iter (± 19414) 1.01
css/visitor/compare/fold_span_panic 3196239 ns/iter (± 27356) 3120678 ns/iter (± 30100) 1.02
css/lexer/bootstrap_5_1_3 5181869 ns/iter (± 3868) 5078673 ns/iter (± 29742) 1.02
css/lexer/foundation_6_7_4 4386719 ns/iter (± 747) 4312952 ns/iter (± 18973) 1.02
css/lexer/tailwind_3_1_1 825199 ns/iter (± 397) 807614 ns/iter (± 5749) 1.02
css/parser/bootstrap_5_1_3 20824915 ns/iter (± 63673) 20287808 ns/iter (± 130847) 1.03
css/parser/foundation_6_7_4 16591933 ns/iter (± 47244) 16300480 ns/iter (± 94926) 1.02
css/parser/tailwind_3_1_1 3198276 ns/iter (± 2739) 3131812 ns/iter (± 15506) 1.02
es/codegen/colors 324034 ns/iter (± 181691) 329745 ns/iter (± 186040) 0.98
es/codegen/large 1219163 ns/iter (± 640175) 1217821 ns/iter (± 647174) 1.00
es/codegen/with-parser/colors 45250 ns/iter (± 962) 44908 ns/iter (± 618) 1.01
es/codegen/with-parser/large 512102 ns/iter (± 727) 511530 ns/iter (± 1765) 1.00
es/minify/libraries/antd 1489467255 ns/iter (± 24937301) 1375507014 ns/iter (± 10270722) 1.08
es/minify/libraries/d3 306093692 ns/iter (± 3371481) 283561973 ns/iter (± 8323861) 1.08
es/minify/libraries/echarts 1255810201 ns/iter (± 9111416) 1129709589 ns/iter (± 38271739) 1.11
es/minify/libraries/jquery 81025305 ns/iter (± 962873) 76660633 ns/iter (± 494348) 1.06
es/minify/libraries/lodash 100519607 ns/iter (± 1038616) 94887172 ns/iter (± 726280) 1.06
es/minify/libraries/moment 47949674 ns/iter (± 800143) 45222124 ns/iter (± 442706) 1.06
es/minify/libraries/react 17903896 ns/iter (± 283813) 17274529 ns/iter (± 144272) 1.04
es/minify/libraries/terser 235432304 ns/iter (± 3831041) 207026714 ns/iter (± 2311739) 1.14
es/minify/libraries/three 417855789 ns/iter (± 7173180) 364326094 ns/iter (± 3928893) 1.15
es/minify/libraries/typescript 2720688975 ns/iter (± 25052264) 2588091094 ns/iter (± 19828455) 1.05
es/minify/libraries/victory 600579516 ns/iter (± 15944068) 526428657 ns/iter (± 5624457) 1.14
es/minify/libraries/vue 122318565 ns/iter (± 1151759) 114142025 ns/iter (± 916241) 1.07
es/visitor/compare/clone 2374305 ns/iter (± 14337) 2359351 ns/iter (± 32674) 1.01
es/visitor/compare/visit_mut_span 2820973 ns/iter (± 11043) 2778783 ns/iter (± 22005) 1.02
es/visitor/compare/visit_mut_span_panic 2875438 ns/iter (± 18418) 2776874 ns/iter (± 19278) 1.04
es/visitor/compare/fold_span 4093510 ns/iter (± 53444) 3832158 ns/iter (± 43904) 1.07
es/visitor/compare/fold_span_panic 4130487 ns/iter (± 11420) 3978705 ns/iter (± 26185) 1.04
es/lexer/colors 17376 ns/iter (± 17) 17041 ns/iter (± 121) 1.02
es/lexer/angular 8222957 ns/iter (± 3878) 7990236 ns/iter (± 32417) 1.03
es/lexer/backbone 1072703 ns/iter (± 1030) 1047783 ns/iter (± 7504) 1.02
es/lexer/jquery 5961060 ns/iter (± 1647) 5868105 ns/iter (± 35815) 1.02
es/lexer/jquery mobile 9202628 ns/iter (± 2969) 8937948 ns/iter (± 60724) 1.03
es/lexer/mootools 4681639 ns/iter (± 2280) 4567754 ns/iter (± 28744) 1.02
es/lexer/underscore 895748 ns/iter (± 201) 879724 ns/iter (± 5201) 1.02
es/lexer/three 27970004 ns/iter (± 43653) 27625459 ns/iter (± 243848) 1.01
es/lexer/yui 5045609 ns/iter (± 2528) 5032030 ns/iter (± 20832) 1.00
es/parser/colors 30955 ns/iter (± 137) 30156 ns/iter (± 320) 1.03
es/parser/angular 16291599 ns/iter (± 158787) 15433997 ns/iter (± 172358) 1.06
es/parser/backbone 2328823 ns/iter (± 9666) 2253215 ns/iter (± 23986) 1.03
es/parser/jquery 12641949 ns/iter (± 97888) 12235171 ns/iter (± 104186) 1.03
es/parser/jquery mobile 20434651 ns/iter (± 269666) 19068123 ns/iter (± 186419) 1.07
es/parser/mootools 9614747 ns/iter (± 27480) 9279431 ns/iter (± 87485) 1.04
es/parser/underscore 1981744 ns/iter (± 11750) 1924380 ns/iter (± 24265) 1.03
es/parser/three 59511262 ns/iter (± 261020) 53317410 ns/iter (± 757517) 1.12
es/parser/yui 9785584 ns/iter (± 52868) 9586602 ns/iter (± 164026) 1.02
es/preset-env/usage/builtin_type 142613 ns/iter (± 33413) 141451 ns/iter (± 33237) 1.01
es/preset-env/usage/property 21513 ns/iter (± 94) 21449 ns/iter (± 149) 1.00
es/resolver/typescript 112530687 ns/iter (± 4172540) 109381900 ns/iter (± 1406514) 1.03
es/fixer/typescript 86490361 ns/iter (± 886577) 86166118 ns/iter (± 1870083) 1.00
es/hygiene/typescript 172888934 ns/iter (± 2004582) 169741116 ns/iter (± 1926531) 1.02
es/resolver_with_hygiene/typescript 299517132 ns/iter (± 5000883) 292938234 ns/iter (± 1828331) 1.02
es/visitor/base-perf/module_clone 73978 ns/iter (± 799) 74431 ns/iter (± 1569) 0.99
es/visitor/base-perf/fold_empty 86782 ns/iter (± 1672) 85275 ns/iter (± 1399) 1.02
es/visitor/base-perf/fold_noop_impl_all 86179 ns/iter (± 1352) 85689 ns/iter (± 1405) 1.01
es/visitor/base-perf/fold_noop_impl_vec 86516 ns/iter (± 790) 85945 ns/iter (± 1179) 1.01
es/visitor/base-perf/boxing_boxed_clone 54 ns/iter (± 0) 55 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed_clone 58 ns/iter (± 0) 58 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 101 ns/iter (± 0) 101 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 104 ns/iter (± 0) 100 ns/iter (± 0) 1.04
es/visitor/base-perf/visit_contains_this 3655 ns/iter (± 85) 3288 ns/iter (± 46) 1.11
es/base/parallel/resolver/typescript 5354642080 ns/iter (± 338253663) 5111034411 ns/iter (± 191853260) 1.05
es/base/parallel/hygiene/typescript 2034971140 ns/iter (± 23556992) 2032643219 ns/iter (± 44709894) 1.00
misc/visitors/time-complexity/time 5 103 ns/iter (± 0) 101 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 10 365 ns/iter (± 1) 327 ns/iter (± 3) 1.12
misc/visitors/time-complexity/time 15 703 ns/iter (± 34) 632 ns/iter (± 7) 1.11
misc/visitors/time-complexity/time 20 1247 ns/iter (± 1) 1183 ns/iter (± 10) 1.05
misc/visitors/time-complexity/time 40 6680 ns/iter (± 47) 6605 ns/iter (± 90) 1.01
misc/visitors/time-complexity/time 60 17237 ns/iter (± 162) 16976 ns/iter (± 160) 1.02
es/full-target/es2016 187718 ns/iter (± 453) 186260 ns/iter (± 3051) 1.01
es/full-target/es2017 181532 ns/iter (± 409) 176474 ns/iter (± 1638) 1.03
es/full-target/es2018 170249 ns/iter (± 482) 165164 ns/iter (± 1614) 1.03
es2020_nullish_coalescing 65484 ns/iter (± 156) 64708 ns/iter (± 748) 1.01
es2020_optional_chaining 94651 ns/iter (± 922) 91937 ns/iter (± 677) 1.03
es2022_class_properties 92202 ns/iter (± 202) 89752 ns/iter (± 693) 1.03
es2018_object_rest_spread 69748 ns/iter (± 88) 68140 ns/iter (± 331) 1.02
es2019_optional_catch_binding 60034 ns/iter (± 111) 58146 ns/iter (± 366) 1.03
es2017_async_to_generator 60293 ns/iter (± 113) 58765 ns/iter (± 440) 1.03
es2016_exponentiation 63579 ns/iter (± 115) 61927 ns/iter (± 365) 1.03
es2015_arrow 68522 ns/iter (± 240) 67216 ns/iter (± 626) 1.02
es2015_block_scoped_fn 64730 ns/iter (± 175) 63240 ns/iter (± 545) 1.02
es2015_block_scoping 139856 ns/iter (± 11173) 155483 ns/iter (± 11140) 0.90
es2015_classes 115284 ns/iter (± 420) 111727 ns/iter (± 891) 1.03
es2015_computed_props 59546 ns/iter (± 68) 57912 ns/iter (± 231) 1.03
es2015_destructuring 114149 ns/iter (± 434) 111006 ns/iter (± 904) 1.03
es2015_duplicate_keys 62374 ns/iter (± 82) 61076 ns/iter (± 482) 1.02
es2015_parameters 77791 ns/iter (± 98) 75782 ns/iter (± 566) 1.03
es2015_fn_name 65062 ns/iter (± 541) 63225 ns/iter (± 412) 1.03
es2015_for_of 62909 ns/iter (± 54) 61063 ns/iter (± 391) 1.03
es2015_instanceof 61611 ns/iter (± 402) 59732 ns/iter (± 260) 1.03
es2015_shorthand_property 59715 ns/iter (± 81) 58313 ns/iter (± 314) 1.02
es2015_spread 59452 ns/iter (± 76) 58608 ns/iter (± 423) 1.01
es2015_sticky_regex 61102 ns/iter (± 118) 59893 ns/iter (± 535) 1.02
es2015_typeof_symbol 60953 ns/iter (± 70) 59442 ns/iter (± 455) 1.03
es/transform/baseline/base 50313 ns/iter (± 80) 49389 ns/iter (± 467) 1.02
es/transform/baseline/common_reserved_word 61130 ns/iter (± 99) 59544 ns/iter (± 496) 1.03
es/transform/baseline/common_typescript 140788 ns/iter (± 233) 136478 ns/iter (± 1191) 1.03
es/target/es3 168603 ns/iter (± 136) 163735 ns/iter (± 971) 1.03
es/target/es2015 626422 ns/iter (± 1299) 609256 ns/iter (± 7607) 1.03
es/target/es2016 63710 ns/iter (± 166) 62665 ns/iter (± 857) 1.02
es/target/es2017 60477 ns/iter (± 148) 59565 ns/iter (± 688) 1.02
es/target/es2018 80025 ns/iter (± 170) 78069 ns/iter (± 797) 1.03
es/target/es2020 131426 ns/iter (± 269) 127925 ns/iter (± 1305) 1.03
babelify-only 660753 ns/iter (± 1507) 652185 ns/iter (± 4402) 1.01
parse_and_babelify_angular 42817814 ns/iter (± 431562) 40729350 ns/iter (± 369943) 1.05
parse_and_babelify_backbone 5438531 ns/iter (± 54909) 5287650 ns/iter (± 45317) 1.03
parse_and_babelify_jquery 32554003 ns/iter (± 639348) 31307164 ns/iter (± 624027) 1.04
parse_and_babelify_jquery_mobile 55176981 ns/iter (± 1779121) 54554161 ns/iter (± 1006800) 1.01
parse_and_babelify_mootools 33627407 ns/iter (± 368537) 31004417 ns/iter (± 1223549) 1.08
parse_and_babelify_underscore 4358292 ns/iter (± 43453) 4320403 ns/iter (± 19423) 1.01
parse_and_babelify_yui 32953685 ns/iter (± 654318) 30539916 ns/iter (± 580093) 1.08
html/minify/document/css_spec 42425909 ns/iter (± 354140) 39634858 ns/iter (± 423226) 1.07
html/minify/document/github 17515564 ns/iter (± 85971) 16845619 ns/iter (± 213786) 1.04
html/minify/document/stackoverflow 15594722 ns/iter (± 59065) 15057669 ns/iter (± 107199) 1.04
html/minify/document_fragment/css_spec 40594422 ns/iter (± 128321) 37970324 ns/iter (± 311881) 1.07
html/minify/document_fragment/github 16811975 ns/iter (± 33378) 16199756 ns/iter (± 127659) 1.04
html/minify/document_fragment/stackoverflow 15234972 ns/iter (± 55567) 14607632 ns/iter (± 50939) 1.04
html/document/visitor/compare/clone 343028 ns/iter (± 3489) 334237 ns/iter (± 2810) 1.03
html/document/visitor/compare/visit_mut_span 367902 ns/iter (± 2376) 356386 ns/iter (± 3264) 1.03
html/document/visitor/compare/visit_mut_span_panic 376653 ns/iter (± 1733) 373953 ns/iter (± 2509) 1.01
html/document/visitor/compare/fold_span 406719 ns/iter (± 2270) 394161 ns/iter (± 4328) 1.03
html/document/visitor/compare/fold_span_panic 466892 ns/iter (± 1671) 451497 ns/iter (± 2214) 1.03
html/document_fragment/visitor/compare/clone 343598 ns/iter (± 2202) 337794 ns/iter (± 3083) 1.02
html/document_fragment/visitor/compare/visit_mut_span 368214 ns/iter (± 8052) 357565 ns/iter (± 2681) 1.03
html/document_fragment/visitor/compare/visit_mut_span_panic 374081 ns/iter (± 1239) 368268 ns/iter (± 2068) 1.02
html/document_fragment/visitor/compare/fold_span 407089 ns/iter (± 2637) 397394 ns/iter (± 2285) 1.02
html/document_fragment/visitor/compare/fold_span_panic 458944 ns/iter (± 1652) 455352 ns/iter (± 4235) 1.01
html/lexer/css_2021_spec 15571473 ns/iter (± 10297) 15101434 ns/iter (± 108865) 1.03
html/lexer/github_com_17_05_2022 6051138 ns/iter (± 2492) 5895766 ns/iter (± 60357) 1.03
html/lexer/stackoverflow_com_17_05_2022 5646583 ns/iter (± 2393) 5460986 ns/iter (± 39834) 1.03
html/parser/parser_document/css_2021_spec 26095564 ns/iter (± 193844) 24488964 ns/iter (± 127044) 1.07
html/parser/parser_document/github_com_17_05_2022 8799031 ns/iter (± 9432) 8516296 ns/iter (± 81976) 1.03
html/parser/parser_document/stackoverflow_com_17_05_2022 7721927 ns/iter (± 6574) 7537615 ns/iter (± 42889) 1.02
html/parser/parser_document_fragment/css_2021_spec 26413000 ns/iter (± 266077) 24835803 ns/iter (± 184432) 1.06
html/parser/parser_document_fragment/github_com_17_05_2022 8810456 ns/iter (± 7300) 8515696 ns/iter (± 84540) 1.03
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7736761 ns/iter (± 4407) 7490586 ns/iter (± 31253) 1.03

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

Please sign in to comment.