Skip to content

perf(wasix): qualify browser benchmarks - #134

Merged
f0rr0 merged 1 commit into
f0rr0/wasix-sdk-clean-breakfrom
f0rr0/wasix-browser-benchmark
Aug 13, 2026
Merged

perf(wasix): qualify browser benchmarks#134
f0rr0 merged 1 commit into
f0rr0/wasix-sdk-clean-breakfrom
f0rr0/wasix-browser-benchmark

Conversation

@f0rr0

@f0rr0 f0rr0 commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Summary

Adds qualified browser performance evidence as a minimal follow-up to merged #133, stacked directly on the current #129 head.

  • defines a checked-in direct/direct and worker/worker benchmark plan against exact @electric-sql/pglite@0.5.4
  • uses the same comfortable-win statistic as the Node harness, but requires the <= 0.80 geometric-mean ratio independently in both browser topologies so one cannot subsidize the other
  • moves qualification out of the browser page and into a testable Node reporter while retaining all browser-side raw samples
  • writes JSON and Markdown reports with exact Git state, browser/machine identity, canonical runtime hashes, and the resolved PGlite package tree
  • keeps quick mode as correctness/parity smoke evidence and makes it explicitly ineligible for performance claims

The old every-metric 30% rule was brittle for sub-millisecond operations and overweighted insert diagnostics. This gate is not a weaker semantic comparison: workload assertions, cross-origin isolation, PostgreSQL durability settings, and indexed-insert WAL parity must pass before either topology can qualify. Cold first open, duplicated workload-open time, close, and insert decomposition remain visible but descriptive; close is excluded because the public APIs make different worker-reclamation guarantees.

Full browser result

The qualifying run is bound to clean commit 3972f98c9666e83ee2b4a4f42d8389d9702b17ca and plan digest 89c2d4fe5c32c1d8593243578742404fcf7e8b4661cc40398ce953233b186493.

  • Chromium 149, cross-origin isolated, 16 logical CPUs
  • exact PGlite 0.5.4 source commit 25d0a55e1f1e4c59f26d9e125150dda88a33fd00
  • exact installed PGlite tree b3925de04c386f51859c1bf18c143b225e3850616718140dd32e8eb48e9a2c84
  • 5 startup rounds, 7 complete workload rounds, and 5 insert-diagnostic rounds with rotating engine order
  • direct ratio: 0.5035 — 49.65% aggregate win
  • worker ratio: 0.2029 — 79.71% aggregate win
  • every primary metric's median paired ratio is below 1.0 in both topologies
  • workload assertions, PostgreSQL durability parity, and WAL parity: PASS
  • indexed-insert WAL delta: 24 bytes / 0.00123%, within the strict 0.1% tolerance
Representative metric Oliphaunt direct PGlite direct Oliphaunt worker PGlite worker
Warm open 172.87 ms 1,322.63 ms 1,084.89 ms 1,312.20 ms
Point-query median 0.055 ms 0.148 ms 0.225 ms 6.060 ms
Decode 10,000 rows 12.63 ms 40.64 ms 50.39 ms 91.81 ms
100-statement transaction 4.29 ms 12.68 ms 26.99 ms 480.70 ms

Reproduce with:

moon run oliphaunt-wasix-ts:bench-browser

or write to an explicit directory:

pnpm --dir src/bindings/wasix-ts package:build
node src/bindings/wasix-ts/tools/smoke-browser.mjs \
  --benchmark \
  --output target/perf/wasix-browser

Validation

  • full clean-commit Chromium benchmark: PASS
  • browser benchmark plan tests: 6/6
  • Node benchmark plan tests: 6/6
  • WASIX TypeScript tests: 19 files / 129 tests
  • WASIX TypeScript typecheck and exact package shape
  • SDK contracts and API surface
  • repository policy checks
  • pinned Biome and Cargo formatting checks

Base: #129 at 94854946681109552871f3d49aa2e740779882c5.

@vercel

vercel Bot commented Aug 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
oliphaunt-docs Ready Ready Preview Aug 13, 2026 9:50am

@f0rr0
f0rr0 marked this pull request as ready for review August 13, 2026 09:52
@f0rr0
f0rr0 merged commit 6ac456d into f0rr0/wasix-sdk-clean-break Aug 13, 2026
3 checks passed
@f0rr0
f0rr0 deleted the f0rr0/wasix-browser-benchmark branch August 13, 2026 09:52
f0rr0 added a commit that referenced this pull request Aug 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant