Skip to content

Commit 91dc0f7

Browse files
authored
chore(benchmark): add codegen benchmark (#4207)
1 parent 2602ce2 commit 91dc0f7

File tree

4 files changed

+36
-33
lines changed

4 files changed

+36
-33
lines changed

.github/workflows/benchmark.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
- isolated_declarations
5959
- semantic
6060
- minifier
61-
- codegen_sourcemap
61+
- codegen
6262
- sourcemap
6363

6464
steps:

tasks/benchmark/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ name = "linter"
3939
harness = false
4040

4141
[[bench]]
42-
name = "codegen_sourcemap"
42+
name = "codegen"
4343
harness = false
4444

4545
[[bench]]
@@ -112,7 +112,7 @@ parser = ["dep:oxc_allocator", "dep:oxc_parser", "dep:oxc_span", "dep:oxc_tasks_
112112
transformer = ["dep:oxc_allocator", "dep:oxc_parser", "dep:oxc_span", "dep:oxc_tasks_common", "dep:oxc_transformer"]
113113
semantic = ["dep:oxc_allocator", "dep:oxc_parser", "dep:oxc_semantic", "dep:oxc_span", "dep:oxc_tasks_common"]
114114
minifier = ["dep:oxc_allocator", "dep:oxc_minifier", "dep:oxc_parser", "dep:oxc_span", "dep:oxc_tasks_common"]
115-
codegen_sourcemap = ["dep:oxc_allocator", "dep:oxc_codegen", "dep:oxc_parser", "dep:oxc_span", "dep:oxc_tasks_common"]
115+
codegen = ["dep:oxc_allocator", "dep:oxc_codegen", "dep:oxc_parser", "dep:oxc_span", "dep:oxc_tasks_common"]
116116
sourcemap = [
117117
"dep:oxc_allocator",
118118
"dep:oxc_codegen",

tasks/benchmark/benches/codegen.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
use oxc_allocator::Allocator;
2+
use oxc_benchmark::{criterion_group, criterion_main, BenchmarkId, Criterion};
3+
use oxc_codegen::CodeGenerator;
4+
use oxc_parser::Parser;
5+
use oxc_span::SourceType;
6+
use oxc_tasks_common::TestFiles;
7+
8+
fn bench_codegen(criterion: &mut Criterion) {
9+
for file in TestFiles::complicated_one(0).files() {
10+
let id = BenchmarkId::from_parameter(&file.file_name);
11+
let source_type = SourceType::from_path(&file.file_name).unwrap();
12+
let allocator = Allocator::default();
13+
let source_text = &file.source_text;
14+
let ret = Parser::new(&allocator, source_text, source_type).parse();
15+
16+
let mut group = criterion.benchmark_group("codegen");
17+
group.bench_with_input(id.clone(), &ret.program, |b, program| {
18+
b.iter_with_large_drop(|| CodeGenerator::new().build(program).source_map);
19+
});
20+
group.finish();
21+
22+
let mut group = criterion.benchmark_group("codegen_sourcemap");
23+
group.bench_with_input(id, &ret.program, |b, program| {
24+
b.iter_with_large_drop(|| {
25+
CodeGenerator::new().enable_source_map(&file.file_name, source_text).build(program)
26+
});
27+
});
28+
group.finish();
29+
}
30+
}
31+
32+
criterion_group!(codegen, bench_codegen);
33+
criterion_main!(codegen);

tasks/benchmark/benches/codegen_sourcemap.rs

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)