oxc-project
oxc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
perf(semantic): preserve precomputed identifier hash throughout semantic analysis - Change `symbol_names` storage from `Vec<Atom>` to `Vec<Ident>` to preserve hash - Update `create_symbol` and `set_symbol_name` to accept `Ident` instead of `&str` - Use `clone_in` in scoping methods instead of reconstructing from `&str` - Update traverse context APIs to use `Ident<'_>` instead of `&str` - Use `Ident::new_const` for compile-time constant strings ("module", "Object") - Use `Ident::from(Atom)` instead of `Ident::from(atom.as_str())` - Modify `base54` to compute hash incrementally while building name, returning `Ident` directly - Update mangler to use `Ident` throughout, eliminating rehashing of mangled names Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
perf-all
3 hours ago
perf(semantic): preserve precomputed identifier hash throughout semantic analysis - Change `symbol_names` storage from `Vec<Atom>` to `Vec<Ident>` to preserve hash - Update `create_symbol` and `set_symbol_name` to accept `Ident` instead of `&str` - Use `clone_in` in scoping methods instead of reconstructing from `&str` - Update traverse context APIs to use `Ident<'_>` instead of `&str` - Use `Ident::new_const` for compile-time constant strings ("module", "Object") - Use `Ident::from(Atom)` instead of `Ident::from(atom.as_str())` - Modify `base54` to compute hash incrementally while building name, returning `Ident` directly - Update mangler to use `Ident` throughout, eliminating rehashing of mangled names Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
perf-all
5 hours ago
feat(benchmark): add pipeline benchmark for full compilation flow (#18484)
main
5 hours ago
feat(benchmark): add pipeline benchmark for full compilation flow Add a new benchmark that measures the complete compilation pipeline: allocate -> parse -> semantic -> transform -> minify -> mangle -> codegen -> drop Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat/pipeline-benchmark
5 hours ago
feat(oxc_str): upgrade Ident with precomputed hash for fast equality (#18400) ## Summary Upgrade `Ident` to store a precomputed hash for fast equality checks and efficient hash map operations. ### Changes - Change `Ident` layout from simple `&str` wrapper to `NonNull<u8>` + `len: u32` + `hash: u32` - Fast `PartialEq` between `Ident`s: compare length and hash first before doing full string comparison - `Hash` impl uses precomputed hash (no `Borrow<str>` - lookups must use `&Ident`) - Add `Ident::new()` and `Ident::len()` methods - Add specific `PartialEq` implementations for `&Ident`, `&str`, `String`, `Atom`, `&Atom` - Add `rustc-hash` dependency for `FxHasher` - Fix enum layout calculation in ast_tools to round size to alignment ### Layout - **64-bit**: 16 bytes, align 8 (ptr 8 + len 4 + hash 4) - **32-bit**: 12 bytes, align 4 (ptr 4 + len 4 + hash 4) Using two separate `u32` fields instead of a single `u64` keeps 4-byte alignment on 32-bit platforms, avoiding size increases in AST structs. π€ Generated with [Claude Code](https://claude.ai/code)
refactor/ident-precomputed-hash
6 hours ago
perf(semantic): preserve precomputed identifier hash throughout semantic analysis - Change `symbol_names` storage from `Vec<Atom>` to `Vec<Ident>` to preserve hash - Update `create_symbol` and `set_symbol_name` to accept `Ident` instead of `&str` - Use `clone_in` in scoping methods instead of reconstructing from `&str` - Update traverse context APIs to use `Ident<'_>` instead of `&str` - Use `Ident::new_const` for compile-time constant strings ("module", "Object") - Use `Ident::from(Atom)` instead of `Ident::from(atom.as_str())` - Modify `base54` to compute hash incrementally while building name, returning `Ident` directly - Update mangler to use `Ident` throughout, eliminating rehashing of mangled names Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
perf-all
6 hours ago
feat(oxc_str): upgrade Ident with precomputed hash for fast equality (#18400) ## Summary Upgrade `Ident` to store a precomputed hash for fast equality checks and efficient hash map operations. ### Changes - Change `Ident` layout from simple `&str` wrapper to `NonNull<u8>` + `len: u32` + `hash: u32` - Fast `PartialEq` between `Ident`s: compare length and hash first before doing full string comparison - `Hash` impl uses precomputed hash (no `Borrow<str>` - lookups must use `&Ident`) - Add `Ident::new()` and `Ident::len()` methods - Add specific `PartialEq` implementations for `&Ident`, `&str`, `String`, `Atom`, `&Atom` - Add `rustc-hash` dependency for `FxHasher` - Fix enum layout calculation in ast_tools to round size to alignment ### Layout - **64-bit**: 16 bytes, align 8 (ptr 8 + len 4 + hash 4) - **32-bit**: 12 bytes, align 4 (ptr 4 + len 4 + hash 4) Using two separate `u32` fields instead of a single `u64` keeps 4-byte alignment on 32-bit platforms, avoiding size increases in AST structs. π€ Generated with [Claude Code](https://claude.ai/code)
refactor/ident-precomputed-hash
8 hours ago
perf(coverage): simplify architecture and cache test data upfront (#18478) Local: 2.4x faster (31s β 13s) CI: saved 50s
main
8 hours ago
Active Branches
perf(all): measure overall performance for `Ident` change
last run
3 hours ago
#18482
CodSpeed Performance Gauge
-20%
feat(oxc_str): upgrade Ident with precomputed hash for fast equality
last run
6 hours ago
#18400
CodSpeed Performance Gauge
-4%
feat(linter/eslint): eslint/object-shorthand
last run
10 hours ago
#17688
CodSpeed Performance Gauge
-1%
Β© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs