Skip to content

Commit 11bba26

Browse files
authoredJun 13, 2024··
test(es/parser): Add benchmarks (#9044)
**Description:** - Source: https://github.com/oxc-project/bench-javascript-parser-written-in-rust
1 parent 145c751 commit 11bba26

File tree

4 files changed

+202299
-2
lines changed

4 files changed

+202299
-2
lines changed
 

‎crates/swc_ecma_parser/benches/files/cal.com.tsx

+30,591
Large diffs are not rendered by default.

‎crates/swc_ecma_parser/benches/files/typescript.js

+171,676
Large diffs are not rendered by default.

‎crates/swc_ecma_parser/benches/lexer.rs

+16-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ extern crate swc_malloc;
22

33
use criterion::{black_box, criterion_group, criterion_main, Bencher, Criterion};
44
use swc_common::FileName;
5-
use swc_ecma_parser::{lexer::Lexer, StringInput, Syntax};
5+
use swc_ecma_parser::{lexer::Lexer, StringInput, Syntax, TsConfig};
66

77
fn bench_module(b: &mut Bencher, syntax: Syntax, src: &'static str) {
88
let _ = ::testing::run_test(false, |cm, _| {
@@ -82,6 +82,21 @@ fn bench_files(c: &mut Criterion) {
8282
c.bench_function("es/lexer/yui", |b| {
8383
bench_module(b, Default::default(), include_str!("./files/yui-3.12.0.js"))
8484
});
85+
86+
c.bench_function("es/lexer/cal-com", |b| {
87+
bench_module(
88+
b,
89+
Syntax::Typescript(TsConfig {
90+
tsx: true,
91+
..Default::default()
92+
}),
93+
include_str!("./files/cal.com.tsx"),
94+
)
95+
});
96+
97+
c.bench_function("es/lexer/typescript", |b| {
98+
bench_module(b, Default::default(), include_str!("./files/typescript.js"))
99+
});
85100
}
86101

87102
criterion_group!(benches, bench_files);

‎crates/swc_ecma_parser/benches/parser.rs

+16-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ extern crate swc_malloc;
22

33
use criterion::{black_box, criterion_group, criterion_main, Bencher, Criterion};
44
use swc_common::{comments::SingleThreadedComments, FileName};
5-
use swc_ecma_parser::{lexer::Lexer, Parser, StringInput, Syntax};
5+
use swc_ecma_parser::{lexer::Lexer, Parser, StringInput, Syntax, TsConfig};
66

77
fn bench_module(b: &mut Bencher, syntax: Syntax, src: &'static str) {
88
let _ = ::testing::run_test(false, |cm, _| {
@@ -89,6 +89,21 @@ fn bench_files(c: &mut Criterion) {
8989
c.bench_function("es/parser/yui", |b| {
9090
bench_module(b, Default::default(), include_str!("./files/yui-3.12.0.js"))
9191
});
92+
93+
c.bench_function("es/parser/cal-com", |b| {
94+
bench_module(
95+
b,
96+
Syntax::Typescript(TsConfig {
97+
tsx: true,
98+
..Default::default()
99+
}),
100+
include_str!("./files/cal.com.tsx"),
101+
)
102+
});
103+
104+
c.bench_function("es/parser/typescript", |b| {
105+
bench_module(b, Default::default(), include_str!("./files/typescript.js"))
106+
});
92107
}
93108

94109
criterion_group!(benches, bench_files);

0 commit comments

Comments
 (0)
Please sign in to comment.