Avatar for the oxc-project user
oxc-project
oxc-resolver
BlogDocsChangelog

Performance History

Latest Results

test: verify node_modules canonicalization across layouts Add `node_modules_canonicalize.rs` and committed symlink fixtures asserting the resolver's canonicalization equals `std::fs::canonicalize`: - `canonicalize_matches_os_for_all_node_modules` walks every path in each installed `fixtures/bench-pm/installs/<combo>/node_modules` tree (skipped when the fixtures are not installed). - `symlinked_package_anchor_walks_suffix_symlinks` — a symlinked workspace anchor with a suffix symlink below it. - `real_package_anchor_walks_internal_symlinks` — a real anchor that ships an internal directory/file symlink. - `nested_monorepo_canonicalize_matches_os` — a monorepo version conflict where a workspace nests its own dependency version via an isolated-store symlink. These pass on main; they pin canonicalization correctness independent of any resolver optimization.
node-modules-canonicalize-tests
2 hours ago
perf(cache): node_modules-anchor fast paths Two fast paths for resolving inside `node_modules`, sharing one allocation-free `Cache::pkg_anchor` (a parent-chain walk with no syscalls) to the deepest `<...>/node_modules/<pkg>` directory (the "anchor"). 1. Canonicalize the anchor, not every component. `canonicalize_with_visited` canonicalizes the real anchor — recursively, so a symlinked project root (`/tmp`->`/private/tmp`, a Windows junction) is still resolved — and appends the suffix below it without a per-component `read_link` walk. A symlinked anchor (a linked workspace package, or the top-level link of an isolated layout) takes the normal walk instead. The suffix is appended only after `suffix_below_anchor_is_symlink_free` confirms every component strictly below the anchor is a real, non-symlink entry — reusing the cached `lstat`, so it is free for components already stat'd while resolving the file. An internal package symlink (`lib -> dist`, a re-export file) or a `..` suffix falls back to the normal walk. Correct for any layout because it verifies the suffix rather than assuming it from a detected layout. 2. Jump to the package's `package.json`. `find_package_json_for_a_package` jumps straight to the anchor's `package.json` instead of probing every intermediate directory, falling back to the directory walk when dependency tracking is enabled (so `missing_dependencies` stays byte-identical for watch consumers) or when the anchor has no manifest of its own. Syscalls on the 16-request `package_managers` workload vs `main`: | combo | main | now | |------------------------------|------|-----| | npm / yarn / bun-flat | 96 | 75 | | pnpm-isolated / pnpm-hoisted | 121 | 100 | | yarn-isolated | 114 | 93 | | bun-isolated | 121 | 100 | | yarn-pnp | 164 | 120 | Tests: `node_modules_canonicalize.rs` asserts the resolver's canonicalization equals `std::fs::canonicalize` for every path in every installed package-manager fixture; committed symlink fixtures cover a real anchor with internal dir/file symlinks and a symlinked workspace anchor with a suffix symlink.
perf/node-modules-anchor-fast-paths
5 hours ago

Latest Branches

CodSpeed Performance Gauge
+4%
test: verify node_modules canonicalization across layouts#1200
2 hours ago
dbfbbab
node-modules-canonicalize-tests
CodSpeed Performance Gauge
-4%
2 hours ago
49b94fa
perf/node-modules-anchor-fast-paths
CodSpeed Performance Gauge
+4%
chore: release v11.21.0#1178
1 day ago
7a75c9e
release-plz-2026-05-28T15-25-06Z
© 2026 CodSpeed Technology
Home Terms Privacy Docs