B3OS sells speed, so its numbers have to survive scrutiny. This page is the method. It holds no product results yet: the products are being built and measured, and a result appears here only once it meets the measurement rules, with raw data next to it.

The loop

The headline benchmark is an agent's loop, not a single call. Each task runs N turns; each turn is a streamed chat completion on a named model with a fixed prompt and token count, plus one tool call that rotates among a sandbox command, a scrape (of a local fixture and of one real site) and a browser action in a session. It reports per-turn and per-task p50 and p95, the share of time spent in transport versus compute, at least 30 tasks, and the raw JSONL.

It runs in three configurations:

ConfigurationHarnessCalls
AIn a B3OS sandbox on the nodeB3OS products and the node's model, over vsock
BIn AWS us-west-2B3OS through the edge
CThe same harness in AWS us-west-2Incumbents through their own SDKs: the same open model on an OpenAI-compatible host, E2B, Firecrawl and Browserbase

Per-hop multipliers are never shown without the per-turn numbers they come from.

Targets

Every figure below is a target from the B3OS build contract, server side and p50 unless noted. None is a result. Each will be published with its arrival rate or concurrency, payload size and pool depth, in the three regimes (back to back, after idle gaps, under mixed load), with idle-gap numbers for every microsecond target.

ProductOperationTarget
VisionCache hit10 ms
VisionPlain fetch, HTML up to 300 KBTime to last byte plus 25 ms, extraction timed separately
VisionBrowser: navigate, ready, HTML, Markdown, against a replayed corpus300 ms
VisionClaim a context from the scrape pool5 ms, p99 15 ms, pool depth stated
VisionOverhead per browser action in a session1 ms
RenderStyled screenshot, 1600x900, JPEG or WebP, quiet window included150 ms
RenderEach extra variant of the same capture30 ms
Render10-second scripted demo / 30-second narrated demo, on a cached app5 s / 8 s
SandboxesClaim and run the first command, at idle and under 100-claim bursts5 ms
SandboxesPause or resume1 ms
SandboxesFork, up to 128 MiB of memory and 64 MiB dirty50 ms
RoutinesDispatch a pure step, 1 KB20 µs (p99 1 ms)
RoutinesCall an action on the same node, 1 KB60 µs
RoutinesDurable standard stepOne disk commit plus 100 µs
RoutinesWebhook to first step1 ms plus one disk commit
RoutinesCron firing latenessp99 5 ms
ActionsDeclarative HTTP action overhead, responses up to 16 KB, upstream excluded150 µs
ActionsInput validation50 µs
ActionsWarm JavaScript action overhead0.5 ms

Throughput targets: a million pure routine steps per second, and 100,000 durable effect records per second at 256 bytes each. Infer publishes time to first token and tokens per second for its model at stated concurrency, idle and with the other products under load.

Sandbox start-up as seen by a client will also be measured with the ComputeSDK harness from its own runners, and browsers with Browser Arena from us-east-1, so B3OS appears on the boards others use, in their measurement shape.

Dev baselines

Before any product code existed, B3OS measured the floors these targets sit on, on the beta node itself. They were dev runs without the benchmark lock, while other work shared the machine, so they inform design and never stand in for product results. Same-host latency shows the decisions they drove.

AreaDev baseline (p50, with n)Source
SandboxesRestore from a warm snapshot to first reply 3.26 ms (n=100); 100 microVMs from one snapshot, all ready in 32.9 ms (median of 3 bursts)bench/baseline/cells/summary.md
VisionHeadless Chrome shell cold start 23.6 ms (n=30); usable tab 8.9 ms (n=100); navigate, load and read the DOM on a 31-page replayed corpus 242 ms (n=186)bench/baseline/vision/summary.md
Render1080p frame capture 16.5 ms unthrottled (n=420), 13.8 ms with BeginFrame (n=280); screenshot 39 ms at page load, 157 ms with a 50 ms quiet window (n=25 each)bench/baseline/render/summary.md
Platform4 KiB durable write 213 µs with FUA, 226 µs with fdatasync (n=240,000 each); Unix socket round trip 3.5 µs (3 runs of 100,000)bench/baseline/platform/summary.md

Each source file lists every result with its percentiles, sample size and conditions, the failures and exclusions, and the scripts to re-run it. Measured 2026-10-25 to 2026-10-26 UTC.

Raw data

Every published result comes with the script that produced it, the raw data and an environment file recording the commit, versions, machine load and the services running at the time, under bench/ in the B3OS beta repository.

Ask a question... ⌘I