What this page tests Cost of giving four workers the same dataset. JSON: main thread parses once, then each worker receives a structured clone of the full array — transfer time is the sender-side postMessage blocking time (clone), and total bytes copied scales with workers. NXS: one SharedArrayBuffer backed by the .nxb file when cross-origin isolated; each worker gets a view — handoff is O(1) with no byte copy. Init rows include module load + reader construction. Enable the writer checkbox to have worker 0 patch record 42’s score every 50 ms while workers 1–3 read it; coherency across workers only appears with a real SAB (the banner explains COOP/COEP and fallbacks).
Ready.

JSON — copy-per-worker

Main thread parses JSON once, then postMessage's the array to each worker. Structured clone runs synchronously on the sender — the main thread blocks until the full copy is done. Transfer time = sender-side postMessage blocking duration (the clone cost).

Bytes copied (total)
Transfer time (total)
Per-worker avg

NXS — zero-copy SAB share

One SharedArrayBuffer holds the .nxb bytes. Each worker gets a Uint8Array view over the same memory. Transfer time = sender-side postMessage cost (SAB pointer registration, not a copy). Worker init time includes module load and NxsReader construction.

Bytes copied (total)
0
Transfer time (total)
Per-worker avg
Writer (worker 0) last wrote:idle
Reader ticks (workers 1-3 reading record 42's score):

Summary

Run the demo to populate.