oxc-project
oxc
BlogDocsChangelog

perf(semantic): reduce `AstNodeId` to `u32`

#4264Merged
Comparing
07-15-perf_semantic_reduce_astnodeid_to_u32_
(
8fad7db
) with
main
(
a8dc4f3
)
CodSpeed Performance Gauge
+18%
Improvements
13
Untouched
19

Benchmarks

Improved

semantic[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
+18%
126.5 µs107.5 µs
semantic[antd.js]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
+14%
196.3 ms172.3 ms
semantic[pdf.mjs]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
+13%
30 ms26.4 ms
semantic[checker.ts]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
+13%
116 ms102.7 ms
semantic[cal.com.tsx]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
+11%
62.8 ms56.7 ms
transformer[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
+9%
251.2 µs230.9 µs
transformer[pdf.mjs]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
+8%
49.7 ms45.8 ms
transformer[checker.ts]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
+8%
183 ms169.2 ms
transformer[antd.js]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
+8%
318.9 ms295.6 ms
minifier[typescript.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier
CodSpeed Performance Gauge
+8%
672.1 ms625.2 ms
transformer[cal.com.tsx]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
+7%
80.6 ms75.5 ms
minifier[antd.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier
CodSpeed Performance Gauge
+6%
363.8 ms341.8 ms
minifier[react.development.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier
CodSpeed Performance Gauge
+6%
4 ms3.8 ms

Passed

linter[checker.ts]
tasks/benchmark/benches/linter.rs::linter::bench_linter
CodSpeed Performance Gauge
+2%
1.4 s1.4 s
linter[cal.com.tsx]
tasks/benchmark/benches/linter.rs::linter::bench_linter
CodSpeed Performance Gauge
+2%
785.1 ms768.1 ms
prepass[react.development.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_passes
CodSpeed Performance Gauge
+1%
207.6 µs206.4 µs
lexer[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
22.4 µs22.4 µs
parser[pdf.mjs]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
17 ms17 ms
parser[cal.com.tsx]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
23.9 ms23.9 ms
lexer[pdf.mjs]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
3.2 ms3.2 ms
prepass[typescript.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_passes
CodSpeed Performance Gauge
0%
27.7 ms27.7 ms
parser[checker.ts]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
52.3 ms52.3 ms
lexer[cal.com.tsx]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
5 ms5 ms
parser[antd.js]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
103.4 ms103.4 ms
lexer[checker.ts]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
12 ms12 ms
codegen_sourcemap[checker.ts]
tasks/benchmark/benches/codegen.rs::codegen::bench_codegen
CodSpeed Performance Gauge
0%
74.7 ms74.7 ms
codegen[checker.ts]
tasks/benchmark/benches/codegen.rs::codegen::bench_codegen
CodSpeed Performance Gauge
0%
18.9 ms18.9 ms
lexer[antd.js]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
20.1 ms20.1 ms
prepass[antd.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_passes
CodSpeed Performance Gauge
0%
15.7 ms15.7 ms
isolated-declarations[vue-id.ts]
tasks/benchmark/benches/isolated_declarations.rs::transformer::bench_isolated_declarations
CodSpeed Performance Gauge
0%
375.8 ms375.8 ms
parser[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
77.2 µs77.3 µs
sourcemap[cal.com.tsx]
tasks/benchmark/benches/sourcemap.rs::sourcemap::bench_sourcemap
CodSpeed Performance Gauge
0%
56.5 ms56.6 ms

Commits

Click on a commit to change the comparison range
Base
main
a8dc4f3
+17.64%
perf(semantic): reduce `AstNodeId` to `u32` (#4264) `AstNodeId` was a `usize`. This seems excessive. Parser has a limit on size of a JS file of 4 GiB. While it is *possible* for a JS file of that size to create an AST with more than `1 << 32` (~4 billion) AST nodes, that would be insanely large. So make `AstNodeId` `u32` instead.
8fad7db
1 year ago
by overlookmotel
© 2025 CodSpeed Technology
Home Terms Privacy Docs