diff --git a/documentation/benchmarking-strategy.md b/documentation/benchmarking-strategy.md index afa8be73d..8bcb1fda8 100644 --- a/documentation/benchmarking-strategy.md +++ b/documentation/benchmarking-strategy.md @@ -378,6 +378,97 @@ Some gaps are not optimization targets. From the 2026-05 investigation: - **σ-band, not point estimates.** Single-run "improvements" that fall inside the σ band of the baseline are not improvements. +## Octane board workflow + +The cross-framework source of truth since 2026-08 is Octane's benchmark +board run from our fork, with Solid linked to a local `next` build. The +campaign that built this and what it found is the +[Store / List Delivery Lane](./performance-experiments.md#store--list-delivery-lane-2026-08-16--2026-09-18-the-octane-board) +in the journal. The mechanics: + +**Where.** Fork `ryansolid/octane`, branch `solid-rc8-fixtures-rebase` +(upstream `main` + our Solid fixture commits; rebase it when upstream +moves — the Solid fixtures are ours alone, upstream still pins +2.0-beta.20). Local checkout `~/Development/octane-fork`. A second +checkout, `~/Development/octane`, holds the pre-September experiment +scaffolding and the older results directories. + +**Linking `next`.** Keep a worktree of this repo on `origin/next` +(`~/Development/solid-next-bench`), `pnpm install`, `pnpm build` in +`packages/compiler` (native binary, needs cargo), then +`pnpm turbo run build --filter=@solidjs/signals --filter=solid-js +--filter=@solidjs/web --filter=@solidjs/babel-plugin --filter=@solidjs/compiler`. +In the fork's `pnpm-workspace.yaml` `overrides:` block, point `solid-js`, +`@solidjs/web`, `@solidjs/signals`, `@solidjs/compiler` and +`@solidjs/babel-plugin` at `link:../solid-next-bench/packages/`, +then `pnpm install --no-frozen-lockfile`. `@solidjs/vite-plugin` stays +npm and picks the linked compiler up through the override — verify with +`readlink -f node_modules/.pnpm/@solidjs+vite-plugin*/node_modules/@solidjs/compiler`. +**Keep the override and the lockfile it produces uncommitted**; the +fixture branch must install from the published rc for anyone else. + +**Running.** From the fork root: + +```bash +env -u PLAYWRIGHT_BROWSERS_PATH node benchmarks/bench.mjs \ + --results-dir=benchmarks/results-