Skip to content

Commit

Permalink
perf(es/parser): Use SmartString as the buffer (#7033)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Mar 9, 2023
1 parent fd2619c commit f378a14
Show file tree
Hide file tree
Showing 9 changed files with 119 additions and 101 deletions.
168 changes: 90 additions & 78 deletions bindings/Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bindings/binding_core_node/Cargo.toml
Expand Up @@ -56,7 +56,7 @@ tracing-chrome = "0.5.0"
tracing-futures = "0.2.5"
tracing-subscriber = { version = "0.3.9", features = ["env-filter"] }

swc_core = { version = "0.64.5", features = [
swc_core = { version = "0.65.0", features = [
"allocator_node",
"ecma_ast",
"common_concurrent",
Expand Down
2 changes: 1 addition & 1 deletion bindings/binding_core_wasm/Cargo.toml
Expand Up @@ -23,7 +23,7 @@ plugin = ["swc_core/plugin_transform_host_js"]
anyhow = "1.0.66"
serde = { version = "1", features = ["derive"] }
serde-wasm-bindgen = "0.4.5"
swc_core = { version = "0.64.5", features = [
swc_core = { version = "0.65.0", features = [
"common_perf",
"binding_macro_wasm",
"ecma_transforms",
Expand Down
2 changes: 1 addition & 1 deletion bindings/swc_cli/Cargo.toml
Expand Up @@ -27,7 +27,7 @@ relative-path = "1.6.1"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["unbounded_depth"] }
sourcemap = "6.2.2"
swc_core = { version = "0.64.5", features = [
swc_core = { version = "0.65.0", features = [
"trace_macro",
"common_concurrent",
"base_concurrent",
Expand Down
6 changes: 3 additions & 3 deletions crates/swc_ecma_minifier/src/compress/pure/evaluate.rs
Expand Up @@ -834,14 +834,14 @@ fn f64_to_precision(value: f64, precision: usize) -> String {
// iv, v
m.push_str(&e.to_string());

return s + &m;
return s + &*m;
}
}

// 11
let e_inc = e + 1;
if e_inc == p_i32 {
return s + &m;
return s + &*m;
}

// 12
Expand All @@ -855,7 +855,7 @@ fn f64_to_precision(value: f64, precision: usize) -> String {
}

// 14
s + &m
s + &*m
}

fn flt_str_to_exp(flt: &str) -> i32 {
Expand Down
2 changes: 1 addition & 1 deletion crates/swc_ecma_parser/src/error.rs
Expand Up @@ -707,7 +707,7 @@ impl SyntaxError {
token_list.join(" or ")
} else {
token_list[0..token_list.len() - 1].join(" , ")
+ &format!("or {}", token_list[token_list.len() - 1])
+ &*format!("or {}", token_list[token_list.len() - 1])
};
format!("Unexpected token. Did you mean {}?", did_you_mean).into()
}
Expand Down
7 changes: 4 additions & 3 deletions crates/swc_ecma_parser/src/lexer/mod.rs
Expand Up @@ -4,6 +4,7 @@ use std::{cell::RefCell, char, iter::FusedIterator, rc::Rc};

use either::Either::{Left, Right};
use smallvec::{smallvec, SmallVec};
use smartstring::SmartString;
use swc_atoms::{Atom, AtomGenerator};
use swc_common::{comments::Comments, input::StringInput, BytePos, Span};
use swc_ecma_ast::{op, EsVersion};
Expand Down Expand Up @@ -1080,7 +1081,7 @@ impl<'a> Lexer<'a> {
'\\' => {
raw.push(c);

let mut wrapped = Raw(Some(String::new()));
let mut wrapped = Raw(Some(Default::default()));

if let Some(chars) = l.read_escaped_char(&mut wrapped, false)? {
for c in chars {
Expand Down Expand Up @@ -1200,7 +1201,7 @@ impl<'a> Lexer<'a> {
let start = self.cur_pos();

let mut cooked = Ok(String::new());
let mut raw = String::new();
let mut raw = SmartString::new();

while let Some(c) = self.cur() {
if c == '`' || (c == '$' && self.peek() == Some('{')) {
Expand All @@ -1218,7 +1219,7 @@ impl<'a> Lexer<'a> {
// TODO: Handle error
return Ok(Template {
cooked: cooked.map(Atom::from),
raw: Atom::new(raw),
raw: Atom::new(&*raw),
});
}

Expand Down
28 changes: 16 additions & 12 deletions crates/swc_ecma_parser/src/lexer/number.rs
Expand Up @@ -6,6 +6,7 @@ use std::{borrow::Cow, fmt::Write};

use either::Either;
use num_bigint::BigInt as BigIntValue;
use smartstring::{LazyCompact, SmartString};
use swc_common::SyntaxContext;
use tracing::trace;

Expand Down Expand Up @@ -45,8 +46,8 @@ impl<'a> Lexer<'a> {
}

let start = self.cur_pos();
let mut raw_val = String::new();
let mut raw_str = String::new();
let mut raw_val = SmartString::<LazyCompact>::new();
let mut raw_str = SmartString::<LazyCompact>::new();

let val = if starts_with_dot {
// first char is '.'
Expand All @@ -64,7 +65,7 @@ impl<'a> Lexer<'a> {

return Ok(Either::Right((
Box::new(s.into_value()),
self.atoms.borrow_mut().intern(raw),
self.atoms.borrow_mut().intern(&*raw),
)));
}

Expand All @@ -85,7 +86,7 @@ impl<'a> Lexer<'a> {
if start.0 != self.last_pos().0 - 1 {
// `-1` is utf 8 length of `0`
return self.make_legacy_octal(start, 0f64).map(|value| {
Either::Left((value, self.atoms.borrow_mut().intern(raw)))
Either::Left((value, self.atoms.borrow_mut().intern(&*raw)))
});
}
} else {
Expand Down Expand Up @@ -114,7 +115,7 @@ impl<'a> Lexer<'a> {
});

return self.make_legacy_octal(start, val).map(|value| {
Either::Left((value, self.atoms.borrow_mut().intern(raw)))
Either::Left((value, self.atoms.borrow_mut().intern(&*raw)))
});
}
}
Expand Down Expand Up @@ -142,7 +143,7 @@ impl<'a> Lexer<'a> {
debug_assert!(self.cur().unwrap().is_ascii_digit());
}

let mut raw = Raw(Some(String::new()));
let mut raw = Raw(Some(Default::default()));
// Read numbers after dot
let dec_val = self.read_int::<10>(0, &mut raw)?;

Expand All @@ -157,7 +158,7 @@ impl<'a> Lexer<'a> {
if raw_val.contains('_') {
Cow::Owned(raw_val.replace('_', ""))
} else {
Cow::Borrowed(&raw_val)
Cow::Borrowed(&*raw_val)
}
.parse()
.expect("failed to parse float using rust's impl")
Expand Down Expand Up @@ -195,7 +196,7 @@ impl<'a> Lexer<'a> {
true
};

let mut raw = Raw(Some(String::new()));
let mut raw = Raw(Some(Default::default()));
let exp = self.read_number_no_dot::<10>(&mut raw)?;

raw_str.push_str(&raw.0.take().unwrap());
Expand All @@ -216,7 +217,7 @@ impl<'a> Lexer<'a> {
if raw_val.contains('_') {
Cow::Owned(raw_val.replace('_', ""))
} else {
Cow::Borrowed(&raw_val)
Cow::Borrowed(&*raw_val)
}
.parse()
.expect("failed to parse float literal")
Expand All @@ -227,7 +228,10 @@ impl<'a> Lexer<'a> {

self.ensure_not_ident()?;

Ok(Either::Left((val, self.atoms.borrow_mut().intern(raw_str))))
Ok(Either::Left((
val,
self.atoms.borrow_mut().intern(&*raw_str),
)))
}

/// Returns `Left(value)` or `Right(BigInt)`
Expand Down Expand Up @@ -313,7 +317,7 @@ impl<'a> Lexer<'a> {
/// Returned bool is `true` is there was `8` or `9`.
fn read_number_no_dot_as_str<const RADIX: u8, const FORMAT: u128>(
&mut self,
) -> LexResult<(f64, LazyBigInt<RADIX>, String, bool)> {
) -> LexResult<(f64, LazyBigInt<RADIX>, SmartString<LazyCompact>, bool)> {
debug_assert!(
RADIX == 2 || RADIX == 8 || RADIX == 10 || RADIX == 16,
"radix for read_number_no_dot should be one of 2, 8, 10, 16, but got {}",
Expand All @@ -324,7 +328,7 @@ impl<'a> Lexer<'a> {
let mut non_octal = false;
let mut read_any = false;

let mut raw = Raw(Some(String::new()));
let mut raw = Raw(Some(Default::default()));

self.read_digits::<_, f64, RADIX>(
|total, radix, v| {
Expand Down
3 changes: 2 additions & 1 deletion crates/swc_ecma_parser/src/lexer/util.rs
Expand Up @@ -4,6 +4,7 @@
//! [babylon/util/identifier.js]:https://github.com/babel/babel/blob/master/packages/babylon/src/util/identifier.js
use std::char;

use smartstring::{LazyCompact, SmartString};
use swc_common::{
comments::{Comment, CommentKind},
BytePos, Span, SyntaxContext,
Expand All @@ -21,7 +22,7 @@ use crate::{
/// Collector for raw string.
///
/// Methods of this struct is noop if the value is [None].
pub(super) struct Raw(pub Option<String>);
pub(super) struct Raw(pub Option<SmartString<LazyCompact>>);

impl Raw {
#[inline]
Expand Down

1 comment on commit f378a14

@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: f378a14 Previous: e698a34 Ratio
es/full/bugs-1 303843 ns/iter (± 18416) 324144 ns/iter (± 9776) 0.94
es/full/minify/libraries/antd 1764232091 ns/iter (± 27390497) 1753448191 ns/iter (± 30423835) 1.01
es/full/minify/libraries/d3 314775965 ns/iter (± 4002921) 306878317 ns/iter (± 5887905) 1.03
es/full/minify/libraries/echarts 1332696653 ns/iter (± 17218868) 1318345287 ns/iter (± 15353570) 1.01
es/full/minify/libraries/jquery 92621327 ns/iter (± 763636) 93074467 ns/iter (± 880867) 1.00
es/full/minify/libraries/lodash 108197810 ns/iter (± 804687) 109816169 ns/iter (± 1558113) 0.99
es/full/minify/libraries/moment 53473242 ns/iter (± 647416) 53725351 ns/iter (± 426390) 1.00
es/full/minify/libraries/react 19256598 ns/iter (± 145216) 19471608 ns/iter (± 138484) 0.99
es/full/minify/libraries/terser 257318732 ns/iter (± 2685766) 251703564 ns/iter (± 2750308) 1.02
es/full/minify/libraries/three 471914083 ns/iter (± 6081703) 468764380 ns/iter (± 5504377) 1.01
es/full/minify/libraries/typescript 3246599885 ns/iter (± 17936991) 3221464497 ns/iter (± 15854911) 1.01
es/full/minify/libraries/victory 718077721 ns/iter (± 11759157) 683993525 ns/iter (± 7711954) 1.05
es/full/minify/libraries/vue 132997588 ns/iter (± 863261) 131892208 ns/iter (± 1507800) 1.01
es/full/codegen/es3 26044 ns/iter (± 52) 26307 ns/iter (± 67) 0.99
es/full/codegen/es5 26070 ns/iter (± 73) 26368 ns/iter (± 50) 0.99
es/full/codegen/es2015 26068 ns/iter (± 215) 26377 ns/iter (± 49) 0.99
es/full/codegen/es2016 26075 ns/iter (± 56) 26343 ns/iter (± 99) 0.99
es/full/codegen/es2017 26063 ns/iter (± 33) 26385 ns/iter (± 65) 0.99
es/full/codegen/es2018 26123 ns/iter (± 54) 26370 ns/iter (± 72) 0.99
es/full/codegen/es2019 26071 ns/iter (± 46) 26390 ns/iter (± 40) 0.99
es/full/codegen/es2020 26039 ns/iter (± 37) 26374 ns/iter (± 62) 0.99
es/full/all/es3 173482625 ns/iter (± 1308274) 175678784 ns/iter (± 3607808) 0.99
es/full/all/es5 161247389 ns/iter (± 3181240) 167973708 ns/iter (± 1730662) 0.96
es/full/all/es2015 128388767 ns/iter (± 990713) 129289995 ns/iter (± 1510251) 0.99
es/full/all/es2016 127705015 ns/iter (± 1445900) 127023921 ns/iter (± 1634811) 1.01
es/full/all/es2017 124992758 ns/iter (± 1893947) 126953744 ns/iter (± 2496108) 0.98
es/full/all/es2018 122495845 ns/iter (± 896330) 122954645 ns/iter (± 1613757) 1.00
es/full/all/es2019 121109126 ns/iter (± 697714) 122579760 ns/iter (± 1828538) 0.99
es/full/all/es2020 116246565 ns/iter (± 1108922) 116968248 ns/iter (± 678976) 0.99
es/full/parser 552172 ns/iter (± 8254) 545242 ns/iter (± 7456) 1.01
es/full/base/fixer 22456 ns/iter (± 62) 22222 ns/iter (± 46) 1.01
es/full/base/resolver_and_hygiene 82623 ns/iter (± 219) 82421 ns/iter (± 191) 1.00
serialization of ast node 128 ns/iter (± 0) 128 ns/iter (± 0) 1
serialization of serde 129 ns/iter (± 0) 129 ns/iter (± 0) 1
css/minify/libraries/bootstrap 28403068 ns/iter (± 121213) 28257066 ns/iter (± 126139) 1.01
css/visitor/compare/clone 2102127 ns/iter (± 13338) 2093087 ns/iter (± 13686) 1.00
css/visitor/compare/visit_mut_span 2267737 ns/iter (± 8470) 2311020 ns/iter (± 9525) 0.98
css/visitor/compare/visit_mut_span_panic 2335583 ns/iter (± 2590) 2353003 ns/iter (± 6704) 0.99
css/visitor/compare/fold_span 3052747 ns/iter (± 19339) 3028088 ns/iter (± 15312) 1.01
css/visitor/compare/fold_span_panic 3233579 ns/iter (± 23709) 3214301 ns/iter (± 19956) 1.01
css/lexer/bootstrap_5_1_3 5267256 ns/iter (± 3589) 5218500 ns/iter (± 6813) 1.01
css/lexer/foundation_6_7_4 4441558 ns/iter (± 3975) 4400990 ns/iter (± 3863) 1.01
css/lexer/tailwind_3_1_1 840041 ns/iter (± 2137) 834249 ns/iter (± 575) 1.01
css/parser/bootstrap_5_1_3 22298967 ns/iter (± 82459) 22001407 ns/iter (± 128182) 1.01
css/parser/foundation_6_7_4 17641741 ns/iter (± 34604) 17600844 ns/iter (± 46197) 1.00
css/parser/tailwind_3_1_1 3344435 ns/iter (± 3020) 3363037 ns/iter (± 2625) 0.99
es/codegen/colors 331636 ns/iter (± 185041) 327687 ns/iter (± 184060) 1.01
es/codegen/large 1148054 ns/iter (± 590846) 1050718 ns/iter (± 531454) 1.09
es/codegen/with-parser/colors 47872 ns/iter (± 75) 47507 ns/iter (± 303) 1.01
es/codegen/with-parser/large 527061 ns/iter (± 1018) 523947 ns/iter (± 1201) 1.01
es/minify/libraries/antd 1504235458 ns/iter (± 28306951) 1509197178 ns/iter (± 10023291) 1.00
es/minify/libraries/d3 269008521 ns/iter (± 4493605) 264864212 ns/iter (± 4086983) 1.02
es/minify/libraries/echarts 1155781734 ns/iter (± 10087104) 1135002751 ns/iter (± 10766689) 1.02
es/minify/libraries/jquery 80462313 ns/iter (± 489886) 80801185 ns/iter (± 437291) 1.00
es/minify/libraries/lodash 97066822 ns/iter (± 734581) 98637023 ns/iter (± 2340144) 0.98
es/minify/libraries/moment 46694398 ns/iter (± 205075) 46903723 ns/iter (± 535471) 1.00
es/minify/libraries/react 17297853 ns/iter (± 113295) 17192973 ns/iter (± 130812) 1.01
es/minify/libraries/terser 218543004 ns/iter (± 3413532) 215839226 ns/iter (± 3892838) 1.01
es/minify/libraries/three 389013717 ns/iter (± 4714394) 382949420 ns/iter (± 5567075) 1.02
es/minify/libraries/typescript 2769676247 ns/iter (± 9295039) 2752025582 ns/iter (± 14625064) 1.01
es/minify/libraries/victory 596245182 ns/iter (± 8200622) 611596803 ns/iter (± 16149657) 0.97
es/minify/libraries/vue 118361906 ns/iter (± 625474) 117904656 ns/iter (± 1967403) 1.00
es/visitor/compare/clone 2391176 ns/iter (± 13756) 2388182 ns/iter (± 8500) 1.00
es/visitor/compare/visit_mut_span 2809922 ns/iter (± 9337) 2773762 ns/iter (± 8336) 1.01
es/visitor/compare/visit_mut_span_panic 2855325 ns/iter (± 15306) 2864878 ns/iter (± 5340) 1.00
es/visitor/compare/fold_span 3950561 ns/iter (± 8852) 3952850 ns/iter (± 5501) 1.00
es/visitor/compare/fold_span_panic 4110768 ns/iter (± 5900) 4108457 ns/iter (± 10694) 1.00
es/lexer/colors 16274 ns/iter (± 15) 16349 ns/iter (± 16) 1.00
es/lexer/angular 7970572 ns/iter (± 8113) 7818819 ns/iter (± 5930) 1.02
es/lexer/backbone 1027814 ns/iter (± 667) 1006727 ns/iter (± 645) 1.02
es/lexer/jquery 5735199 ns/iter (± 4033) 5607288 ns/iter (± 10018) 1.02
es/lexer/jquery mobile 8794149 ns/iter (± 8456) 8614090 ns/iter (± 35484) 1.02
es/lexer/mootools 4494532 ns/iter (± 1832) 4403924 ns/iter (± 4080) 1.02
es/lexer/underscore 858453 ns/iter (± 963) 839519 ns/iter (± 504) 1.02
es/lexer/three 26583048 ns/iter (± 12105) 26165982 ns/iter (± 29737) 1.02
es/lexer/yui 4879256 ns/iter (± 4219) 4816810 ns/iter (± 48439) 1.01
es/parser/colors 30915 ns/iter (± 312) 30348 ns/iter (± 92) 1.02
es/parser/angular 15930202 ns/iter (± 186840) 15736225 ns/iter (± 194016) 1.01
es/parser/backbone 2302046 ns/iter (± 12491) 2281501 ns/iter (± 14334) 1.01
es/parser/jquery 12478536 ns/iter (± 62506) 12325253 ns/iter (± 104894) 1.01
es/parser/jquery mobile 19560018 ns/iter (± 695002) 19321977 ns/iter (± 267972) 1.01
es/parser/mootools 9551131 ns/iter (± 39294) 9421031 ns/iter (± 25467) 1.01
es/parser/underscore 1965886 ns/iter (± 13565) 1938495 ns/iter (± 12718) 1.01
es/parser/three 58608821 ns/iter (± 590864) 58153826 ns/iter (± 509292) 1.01
es/parser/yui 9622035 ns/iter (± 63979) 9500459 ns/iter (± 55477) 1.01
es/preset-env/usage/builtin_type 141449 ns/iter (± 31700) 139900 ns/iter (± 31295) 1.01
es/preset-env/usage/property 21379 ns/iter (± 65) 21175 ns/iter (± 62) 1.01
es/resolver/typescript 121863020 ns/iter (± 2519755) 121659942 ns/iter (± 1997145) 1.00
es/fixer/typescript 97590098 ns/iter (± 6690478) 92907556 ns/iter (± 947452) 1.05
es/hygiene/typescript 204367205 ns/iter (± 2403393) 202887521 ns/iter (± 1348521) 1.01
es/resolver_with_hygiene/typescript 346294090 ns/iter (± 2178514) 340130942 ns/iter (± 2967592) 1.02
es/visitor/base-perf/module_clone 76108 ns/iter (± 1266) 76054 ns/iter (± 1764) 1.00
es/visitor/base-perf/fold_empty 85523 ns/iter (± 1844) 87240 ns/iter (± 1766) 0.98
es/visitor/base-perf/fold_noop_impl_all 85304 ns/iter (± 1811) 85938 ns/iter (± 1967) 0.99
es/visitor/base-perf/fold_noop_impl_vec 85527 ns/iter (± 1576) 86490 ns/iter (± 1928) 0.99
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 59 ns/iter (± 0) 59 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 105 ns/iter (± 0) 103 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 103 ns/iter (± 0) 104 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3487 ns/iter (± 90) 3522 ns/iter (± 41) 0.99
es/base/parallel/resolver/typescript 5169668406 ns/iter (± 420994542) 5731797003 ns/iter (± 457929472) 0.90
es/base/parallel/hygiene/typescript 2502856827 ns/iter (± 42251302) 2382571896 ns/iter (± 37157057) 1.05
misc/visitors/time-complexity/time 5 99 ns/iter (± 0) 99 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 317 ns/iter (± 2) 315 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 15 667 ns/iter (± 17) 652 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 20 1212 ns/iter (± 2) 1212 ns/iter (± 2) 1
misc/visitors/time-complexity/time 40 6184 ns/iter (± 2) 6220 ns/iter (± 36) 0.99
misc/visitors/time-complexity/time 60 15557 ns/iter (± 8) 15549 ns/iter (± 14) 1.00
es/full-target/es2016 188747 ns/iter (± 503) 188970 ns/iter (± 448) 1.00
es/full-target/es2017 183569 ns/iter (± 634) 183734 ns/iter (± 288) 1.00
es/full-target/es2018 173074 ns/iter (± 367) 172445 ns/iter (± 457) 1.00
es2020_nullish_coalescing 67197 ns/iter (± 492) 67545 ns/iter (± 118) 0.99
es2020_optional_chaining 95728 ns/iter (± 394) 96760 ns/iter (± 6569) 0.99
es2022_class_properties 94760 ns/iter (± 163) 94659 ns/iter (± 241) 1.00
es2018_object_rest_spread 71855 ns/iter (± 180) 71448 ns/iter (± 116) 1.01
es2019_optional_catch_binding 61854 ns/iter (± 179) 61613 ns/iter (± 77) 1.00
es2017_async_to_generator 62234 ns/iter (± 96) 61966 ns/iter (± 167) 1.00
es2016_exponentiation 65492 ns/iter (± 142) 65393 ns/iter (± 125) 1.00
es2015_arrow 70330 ns/iter (± 330) 70211 ns/iter (± 264) 1.00
es2015_block_scoped_fn 66708 ns/iter (± 105) 66685 ns/iter (± 96) 1.00
es2015_block_scoping 157053 ns/iter (± 7633) 139140 ns/iter (± 4441) 1.13
es2015_classes 117904 ns/iter (± 2807) 117709 ns/iter (± 429) 1.00
es2015_computed_props 61695 ns/iter (± 95) 61399 ns/iter (± 98) 1.00
es2015_destructuring 116360 ns/iter (± 345) 116977 ns/iter (± 606) 0.99
es2015_duplicate_keys 64195 ns/iter (± 106) 63901 ns/iter (± 88) 1.00
es2015_parameters 80828 ns/iter (± 226) 80452 ns/iter (± 160) 1.00
es2015_fn_name 67702 ns/iter (± 661) 66840 ns/iter (± 462) 1.01
es2015_for_of 64719 ns/iter (± 110) 64549 ns/iter (± 143) 1.00
es2015_instanceof 63451 ns/iter (± 155) 63775 ns/iter (± 120) 0.99
es2015_shorthand_property 61719 ns/iter (± 101) 61563 ns/iter (± 84) 1.00
es2015_spread 61695 ns/iter (± 66) 61221 ns/iter (± 142) 1.01
es2015_sticky_regex 62623 ns/iter (± 120) 62428 ns/iter (± 106) 1.00
es2015_typeof_symbol 63054 ns/iter (± 108) 62515 ns/iter (± 92) 1.01
es/transform/baseline/base 52301 ns/iter (± 115) 52054 ns/iter (± 82) 1.00
es/transform/baseline/common_reserved_word 63238 ns/iter (± 94) 63361 ns/iter (± 89) 1.00
es/transform/baseline/common_typescript 168565 ns/iter (± 3649) 142539 ns/iter (± 4868) 1.18
es/target/es3 170158 ns/iter (± 293) 170551 ns/iter (± 272) 1.00
es/target/es2015 631613 ns/iter (± 1696) 631196 ns/iter (± 1126) 1.00
es/target/es2016 65433 ns/iter (± 133) 65441 ns/iter (± 143) 1.00
es/target/es2017 62305 ns/iter (± 79) 62057 ns/iter (± 147) 1.00
es/target/es2018 81939 ns/iter (± 120) 81711 ns/iter (± 87) 1.00
es/target/es2020 133546 ns/iter (± 306) 133539 ns/iter (± 221) 1.00
babelify-only 674026 ns/iter (± 1433) 667265 ns/iter (± 5825) 1.01
parse_and_babelify_angular 48099416 ns/iter (± 861646) 42884910 ns/iter (± 816123) 1.12
parse_and_babelify_backbone 5997224 ns/iter (± 133873) 5593338 ns/iter (± 138569) 1.07
parse_and_babelify_jquery 36892988 ns/iter (± 381096) 33353626 ns/iter (± 549169) 1.11
parse_and_babelify_jquery_mobile 61696476 ns/iter (± 522033) 58137118 ns/iter (± 1043542) 1.06
parse_and_babelify_mootools 37796228 ns/iter (± 301383) 34934273 ns/iter (± 779360) 1.08
parse_and_babelify_underscore 4543917 ns/iter (± 43710) 4456017 ns/iter (± 43554) 1.02
parse_and_babelify_yui 38673307 ns/iter (± 1455956) 34882913 ns/iter (± 539103) 1.11
html/minify/document/css_spec 46268880 ns/iter (± 347432) 44156336 ns/iter (± 744901) 1.05
html/minify/document/github 18545486 ns/iter (± 118246) 17699617 ns/iter (± 75332) 1.05
html/minify/document/stackoverflow 16580010 ns/iter (± 47325) 15719937 ns/iter (± 60100) 1.05
html/minify/document_fragment/css_spec 45027008 ns/iter (± 274597) 41997261 ns/iter (± 638889) 1.07
html/minify/document_fragment/github 17756845 ns/iter (± 75087) 16949185 ns/iter (± 38357) 1.05
html/minify/document_fragment/stackoverflow 15907574 ns/iter (± 213475) 15319330 ns/iter (± 34803) 1.04
html/document/visitor/compare/clone 344233 ns/iter (± 1963) 345432 ns/iter (± 1945) 1.00
html/document/visitor/compare/visit_mut_span 371657 ns/iter (± 2115) 370117 ns/iter (± 1738) 1.00
html/document/visitor/compare/visit_mut_span_panic 382633 ns/iter (± 2526) 378673 ns/iter (± 1776) 1.01
html/document/visitor/compare/fold_span 412676 ns/iter (± 2161) 412865 ns/iter (± 1907) 1.00
html/document/visitor/compare/fold_span_panic 466534 ns/iter (± 2730) 464770 ns/iter (± 2369) 1.00
html/document_fragment/visitor/compare/clone 343548 ns/iter (± 1139) 343476 ns/iter (± 2312) 1.00
html/document_fragment/visitor/compare/visit_mut_span 372635 ns/iter (± 2496) 371832 ns/iter (± 1815) 1.00
html/document_fragment/visitor/compare/visit_mut_span_panic 384614 ns/iter (± 1261) 384446 ns/iter (± 2536) 1.00
html/document_fragment/visitor/compare/fold_span 414305 ns/iter (± 2880) 411022 ns/iter (± 2104) 1.01
html/document_fragment/visitor/compare/fold_span_panic 470060 ns/iter (± 2272) 463658 ns/iter (± 2570) 1.01
html/lexer/css_2021_spec 15732945 ns/iter (± 12636) 15777042 ns/iter (± 24706) 1.00
html/lexer/github_com_17_05_2022 6071326 ns/iter (± 5267) 6094261 ns/iter (± 5457) 1.00
html/lexer/stackoverflow_com_17_05_2022 5679414 ns/iter (± 3370) 5695254 ns/iter (± 3731) 1.00
html/parser/parser_document/css_2021_spec 27976530 ns/iter (± 303349) 26542797 ns/iter (± 335242) 1.05
html/parser/parser_document/github_com_17_05_2022 9034996 ns/iter (± 40557) 8978964 ns/iter (± 25154) 1.01
html/parser/parser_document/stackoverflow_com_17_05_2022 7993371 ns/iter (± 15126) 7809557 ns/iter (± 7899) 1.02
html/parser/parser_document_fragment/css_2021_spec 27131661 ns/iter (± 478849) 27411165 ns/iter (± 523361) 0.99
html/parser/parser_document_fragment/github_com_17_05_2022 8921439 ns/iter (± 18561) 8944515 ns/iter (± 5653) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7797566 ns/iter (± 18616) 7809208 ns/iter (± 8445) 1.00

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

Please sign in to comment.