NyxisZero-copy NXSNXS
HomeDocsUse casesPricingDemosBenchmark GitHub
All demosTickerWorkersExplorerReportWAL

Interactive benchmarks

Browser demos

Live comparisons of NXS versus JSON and CSV — served with COOP/COEP headers so SharedArrayBuffer and worker handoffs work as in production.

  • Benchmark (NXS vs JSON vs CSV)Bar charts for five workloads at 1k–10M records; optional upload of matching .nxb / .json / .csv suites.What is tested: (1) Open — full JSON.parse and CSV row parse vs NxsReader (header + tail-index, no full parse). (2) Warm random access — read username for a random record index. (3) Multi-field access — four fields per random record (username, age, balance, active). (4) Cold pipeline — fetch + open + first field (realistic page load). (5) Aggregate — sum score over all rows (JSON loop, raw CSV column scan, NXS bulk reducer with optional WASM).
  • TickerSide-by-side requestAnimationFrame loop: JSON stringify/parse bursts vs an 8-byte in-place float64 patch on mapped .nxb bytes.What is tested: Updating record 0’s score every frame under adjustable pressure (updates per frame). JSON path mutates then periodically re-serialises and re-parses the full ~15 MB document (simulating a pushed payload you cannot patch in place). NXS path writes via DataView.setFloat64 at a cached offset — no per-frame allocations. Compare FPS, last/avg/max frame time, frames over a 20 ms budget (“drops”), and sparklines.
  • WorkersFour Web Workers reading the same dataset; JSON uses structured clone per worker, NXS uses one SharedArrayBuffer when cross-origin isolated.What is tested: Sender-side postMessage cost — JSON pays full structured-clone time per worker (main thread blocks); NXS passes a SAB view so handoff is O(1) bytes copied when COOP/COEP is enabled. Worker init (module load + reader setup) is timed separately. With the writer checkbox, worker 0 patches record 42’s score every 50 ms and workers 1–3 read the same field — updates propagate across threads only when a real SharedArrayBuffer is used; otherwise the UI documents the per-worker copy fallback.
  • Log explorerLarge “log line” grid backed by .nxb — virtual scroll, jump-to-line, search — without rendering millions of DOM nodes.What is tested: Scrolling and seeking through very large record counts (title uses ~10M lines) using a fixed row pool, a scaled inner spacer, and mapping scroll position to NXS record indices for zero-copy-style field reads (timestamp, component, message, score, flag). Exercises keyboard navigation, in-viewport row reuse, and whether the UI stays smooth while random-accessing the binary tail-index.
  • Report layoutYour CSV → row + columnar .nxb in the browser; three real operations plus a chart from col_buffer.What this is: Not a benchmark page — upload or paste data, see which layout fits streaming vs sum vs random access, and render a chart from columnar field buffers (Chart.js). Answers “which layout do I use for my report?” on your own numbers.
  • WAL / spansOTel-style span ingestion — append-only WAL vs JSON payloads.