Performance
Every measured number, with the instrument that produced it.
Every figure on this site is read from docs/perf/data/*.jsonl when the page is
built. None is typed. Those files are appended by the test harnesses themselves,
one JSON line per run, each carrying the commit that produced it.
A claim without an instrument is a hope, not a claim.
Latency
Two headless peers over loopback on one Apple M5 Pro.
| What | Value |
|---|---|
| application round trip, median of 30 | 0.21 ms |
| the same, p95 | 0.54 ms |
| cold connect, process start to first byte | 0.59 s |
| warm first byte, second file on the same session | 0.7 ms |
a tools/call through the whole MCP chain, median | 0.67 ms |
| the same, p95 | 1.15 ms |
The round trip is at the floor. A fraction of a millisecond over loopback is the runtime and the kernel, not the protocol, so effort spent optimising messaging would be effort wasted.
The MCP figure is the interesting one. It crosses four process boundaries: your
agent, the sparsh mcp pipe, the Unix socket, the daemon, the channel, the far
daemon, and the exposed server's stdin. All of that costs about half a
millisecond above the raw channel.
Throughput, and why one number is a lie
A transfer costs a fixed amount plus a rate:
seconds = fixed + size / rateMeasured: the fixed part is roughly 3.3 to 3.6 s in a browser and 0.59 s headless. So a single megabits figure at a single file size is the two mixed together, and which one it mostly reports depends on the size.
| File | Composite rate | How much is the fixed cost |
|---|---|---|
| 32 MiB | 60 Mbps | most of it |
| 128 MiB | 173 Mbps | about half the seconds |
| 512 MiB | 287 Mbps | about a fifth |
The same wire does 368 to 379 Mbps steady state. Every 128 MiB row understates it, and overstates the effect of any change.
So quote the size with the number, and quote the instrument too. At 512 MiB one harness measures 287 Mbps and another measures 394 on the same machine, because one instruments both pages and the other only the sender.
Real devices
| Route | Rate |
|---|---|
| Mac to Android, 1.59 GB, local network | 9 to 17.8 MB/s |
| Mac to Mac, loopback | 46.8 MB/s |
No iPhone row exists yet. When one does it will appear here, because this page reads the ledger rather than describing it.
The rules
- A regression under 10% is noise on one machine. Run it twice. The rows span plus 15.7% to minus 10.1% around their median, which is why the gate takes a median of three rather than trusting one.
- Never quote one run at one size.
- Label everything: measured has an instrument, a date and a device; verified was read in a primary source and cited; suspected is a hypothesis with a plan to test it.