Benchmarks
Every number has a source.
We publish a number only with its provenance, where it was measured from, which side measured it, the date, the sample count and a link to the raw data. Each B3OS number also states the transport, the regime and its concurrency or arrival rate, and the conditions it ran under. Competitors are measured the way their own benchmarks measure them.
36 published B3OS numbers and 268 numbers cited from other providers, 166 of them in like-for-like tables, inputs up to Oct 26, 2026. 4 cited figures have a newer figure from the same source and are left out.
The loop
One agent task, three places to run it
Each task is N turns. A turn is one streamed infer.chat call on a named model with fixed prompt and token counts, plus one tool call that rotates among sandboxes.exec, vision.scrape (a local fixture and one real site) and a browser-session act. At least 30 tasks per configuration, p50 and p95 per turn and per task, with the share of each turn spent in transport rather than compute. Raw JSONL for every run.
AAgent in a sandbox on the node
The harness runs inside a B3OS sandbox and calls the co-located model and tools over vsock.
BAgent in AWS us-west-2, calling B3OS
The same harness runs in us-west-2 and calls B3OS through beta-api.b3os.org.
CAgent in AWS us-west-2, calling other providers
The same harness in us-west-2 calls the same open model on an OpenAI-compatible host, and E2B, Firecrawl and Browserbase through their own SDKs.
| Configuration | Per turn | Per task | Model call | Tool call | Transport per turn |
|---|---|---|---|---|---|
| AAgent in a sandbox on the nodesame-host | measuring | measuring | measuring | measuring | measuring |
| BAgent in AWS us-west-2, calling B3OScross-region from us-west-2 | measuring | measuring | measuring | measuring | measuring |
| CAgent in AWS us-west-2, calling other providerscross-region from us-west-2 | measuring | measuring | measuring | measuring | measuring |
Per-hop multipliers are never shown without the per-turn numbers behind them. Configuration A is the only one where the model, the tools and the agent share a machine; frontier models served elsewhere get co-located tools but not a co-located model.
vision
Scrape from cache
A scrape answered from the shared cache, server side.
Plain-fetch overhead
Time added over the origin's time to last byte, for HTML up to 300 KB at a stated concurrency. Extraction is timed separately.
Browser scrape
Navigate, wait for ready, read HTML and convert to Markdown, against a recorded (HAR replay) origin on a named corpus.
Browser context claim
Claiming a pre-created context from the scrape pool, with the pool depth stated.
Browser context claim, p99
The same claim at the 99th percentile.
Session browser claim
Creating a browser session from the pool of whole browsers.
Act overhead
Time per action in a batched act call, beyond the browser's own work.
What others publish
Each table holds numbers measured the same way, from the same side and kind of vantage point, best first. B3OS joins a table only with a number measured that way too.
10-action Wikipedia flow, actions per second
client side · client in the provider's region · actions/s · descending (higher is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Tilion | 5.26–5.34actions/s | n not statedsource1.87-1.90 s per 10-action task |
| Browser Use | 4.3actions/s | n not statedsource4.29 in the newest three runs |
| Kernel | 4.2–4.4actions/s | n not statedsourceheadful 4.27, headless 4.37 in the newest three runs |
| Browserbase | 4.15actions/s | n not statedsourcenewest three runs (Oct 21, 22, 25) |
| AWS Bedrock AgentCore Browser | 1.17actions/s | n not statedsource66% success |
Page.captureScreenshot over cloud CDP
client side · client in the provider's region · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Browserbase | 162–166ms | Competitor-runp50by Notte (runs Browser Arena and competes in it); raw JSONL re-analyzed by the B3OS fact-checkAWS us-east-1 client (t3.medium), provider in-region; Notte and Lightpanda from us-west-1 (t3.small)measured 2026-10-25n not statedsource166 ms in the report's window, 162 ms over the newest three runs. Arena hello-browser: create session via provider SDK, Playwright connectOverCDP, goto example.com (domcontentloaded), release; percentiles over successful runs only |
session create p95 under bursts of 10 concurrent creates
client side · client in the provider's region · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Browser Use | 273–295ms | n not statedsourcec10 runs, Oct 16-22 |
| Hyperbrowser | 417ms | n not statedsourcec10 runs, Oct 16-22 |
| Notte | 559ms | n not statedsourcec10 runs, Oct 16-22 |
| Cloudflare Browser Run | 564–588ms | n not statedsourcec10 runs, Oct 16-22 |
| Kernel | 2,500–3,000ms | n not statedsourcec10 runs, Oct 16-22 |
| Tilion | 12,600ms | n not statedsourcec10 runs, Oct 16-22 |
| Browserbase | 54,400ms | n not statedsourcec10 runs, Oct 16-22 |
session create (API return)
client side · client in the provider's region · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Tilion (waitlist beta) | 18ms | n=700sourceOct 16-22 window, sequential |
| Kernel headless (1 GiB) | 20ms | n not statedsourcelatest two days, Oct 21-22, 100% success |
| Kernel headful (8 GB) | 23ms | n not statedsourcelatest two days, Oct 21-22, 100% success |
| Kernel headless | 24ms | n not statedsource30 days, Sep 25-Oct 22, 96.3% success |
create + CDP connect
client side · client in the provider's region · ms · ascending (lower is better)
create + connect + goto(example.com)
client side · client in the provider's region · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Tilion | 122–137ms | n not statedsourceOct 16-22; p99 13.0 s |
| Notte | 265ms | n not statedsourceOct 16-22; us-west-1 client (t3.small) |
| Kernel | 267–283ms | n not statedsourceSOTA-bar range; the report's 272-336 / 638-684 mixed headless and headful |
| Browser Use | 385–405ms | n not statedsourceOct 16-22 |
| Browserbase | 463–483ms | n not statedsourceOct 16-22; Browserbase's p50 fell from ~780-830 ms to ~450-530 ms from Oct 16 (provider-side change) |
| Cloudflare Browser Run | 810ms | n not statedsourceOct 16-22 |
| Steel | 1,319ms | n not statedsourceOct 16-22 |
| Anchor Browser | 1,950ms | n not statedsourceOct 16-22 |
average connect / average navigation to example.com
client side · vendor figure, method not stated · ms · ascending (lower is better)
browser lifecycle total per session
client side · client, location not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Tilion | 195ms | n not statedsourcephase breakdown: create 14 / connect 98 / navigate 60 ms |
| Kernel | 242ms | n not statedsourcephase breakdown: create 9 / connect 33 / navigate 139 ms |
| Browser Use | 320ms | n not statedsourcenone recorded beyond the metric and vantage (fact-check research-vision.md A13) |
| Browserbase | 622ms | n not statedsourcenone recorded beyond the metric and vantage (fact-check research-vision.md A13) |
| Hyperbrowser | 701ms | n not statedsourcenone recorded beyond the metric and vantage (fact-check research-vision.md A13) |
| Steel | 1,309ms | n not statedsourcenone recorded beyond the metric and vantage (fact-check research-vision.md A13) |
| Notte | 1,750ms | n not statedsourcenone recorded beyond the metric and vantage (fact-check research-vision.md A13) |
browserbench: create / end to end (averages)
client side · vendor figure, method not stated · ms · ascending (lower is better)
live single-URL scrape to markdown (maxAge 0)
client side · client, location not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Firecrawl | 2,829ms | Independentp50by techstackups (Ritza; no sponsorship disclosed)client location not statedupdated 2026-10-20n=821sourcenone recorded beyond the metric and vantage (fact-check research-vision.md B24) |
create, connect, goto google.com, release: total
client side · client in the provider's region · ms · ascending (lower is better)
end-to-end session (average)
client side · client in another region · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Steel | 1,441ms | n=10sourceaverage of 10 measured sessions. none recorded beyond the metric and vantage (fact-check research-vision.md A14) |
| Kernel | 1,554ms | n=10sourceaverage of 10 measured sessions. none recorded beyond the metric and vantage (fact-check research-vision.md A14) |
| Browserless | 2,090ms | n=10sourceaverage of 10 measured sessions. none recorded beyond the metric and vantage (fact-check research-vision.md A14) |
| Anchor Browser | 3,730ms | n=10sourceaverage of 10 measured sessions. none recorded beyond the metric and vantage (fact-check research-vision.md A14) |
| Hyperbrowser | 4,012ms | n=10sourceaverage of 10 measured sessions. none recorded beyond the metric and vantage (fact-check research-vision.md A14) |
| Browserbase | 11,933ms | n=10sourceaverage of 10 measured sessions. 9,401 ms of it was create |
32 more cited numbers for vision
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| Tavily | 1–1.6USD/1k pages | price per 1,000 pagesVendor claimlistby Tavilylist priceclient sideretrieved 2026-10-25n not statedsource |
| Steel | 5USD/1k pages | price per 1,000 pagesVendor claim/scrapeby Steellist priceclient sideretrieved 2026-10-25n not statedsource |
| Spider | 0.1–0.3USD/1k pages | price per 1,000 pagesVendor claimderivedby Spiderlist priceclient sideretrieved 2026-10-25n not statedsource |
| Hyperbrowser | 1USD/1k pages | price per 1,000 pagesVendor claimlistby Hyperbrowserlist priceclient sideretrieved 2026-10-25n not statedsource |
| Firecrawl | 0.75USD/1k pages | price per 1,000 pagesVendor claimScale monthlyby Firecrawllist priceclient sideretrieved 2026-10-25n not statedsource |
| Exa | 1USD/1k pages | price per 1,000 pagesVendor claimper content typeby Exalist priceclient sideretrieved 2026-10-25n not statedsource |
| Browserbase Fetch | 0.5USD/1k pages | price per 1,000 pagesVendor claimStartupby Browserbase Fetchlist priceclient sideretrieved 2026-10-25n not statedsource |
| Steel | 0.1USD/h | browser-hour list priceVendor claimlistby Steellist priceclient sideretrieved 2026-10-25n not statedsource |
| Notte | 0.01USD/h | browser-hour list priceVendor claimlistby Nottelist priceclient sideretrieved 2026-10-25n not statedsource |
| Kernel | 0.06USD/h | browser-hour list priceVendor claimlistby Kernellist priceclient sideretrieved 2026-10-25n not statedsource |
| Hyperbrowser | 0.1USD/h | browser-hour list priceVendor claimlistby Hyperbrowserlist priceclient sideretrieved 2026-10-25n not statedsource |
| Cloudflare Browser Run | 0.09USD/h | browser-hour list priceVendor claimlistby Cloudflare Browser Runlist priceclient sideretrieved 2026-10-25n not statedsource |
| Browserbase | 0.12USD/h | browser-hour list priceVendor claimlistby Browserbaselist priceclient sideretrieved 2026-10-25n not statedsource |
| Browser Use | 0.02USD/h | browser-hour list priceVendor claimlistby Browser Uselist priceclient sideretrieved 2026-10-25n not statedsource |
| Anchor Browser | 0.09USD/h | browser-hour list priceVendor claimlistby Anchor Browserlist priceclient sideretrieved 2026-10-25n not statedsource |
| Spider | 1,538concurrent | concurrency and creation limitsVendor claim$19,994/moby Spiderlist priceclient sideretrieved 2026-10-25n not statedsource |
| Kernel | 150concurrent | concurrency and creation limitsVendor claimtop self-serve planby Kernellist priceclient sideretrieved 2026-10-25n not statedsource |
| Firecrawl | 100concurrent | concurrency and creation limitsVendor claimScaleby Firecrawllist priceclient sideretrieved 2026-10-25n not statedsource |
| Cloudflare Browser Run | 200concurrent | concurrency and creation limitsVendor claimPaidby Cloudflare Browser Runlist priceclient sideretrieved 2026-10-25n not statedsource |
| Browserbase | 150creates/min | concurrency and creation limitsVendor claimScale (Free 5, Developer 25, Startup 50)by Browserbaselist priceclient sideretrieved 2026-10-25n not statedsource |
| Browser Use | 1,000concurrent | concurrency and creation limitsVendor claimafter $25k cumulative spendby Browser Uselist priceclient sideretrieved 2026-10-25n not statedsource |
| Bright Data (Browser API) | 2,000ms | startup time; success at 250 concurrent agentsAffiliatedapprox_startupby AIMultiple (Bright Data is a disclosed subscriber of its benchmarking services)not statedclient sideretrieved 2026-10-25n=20source |
| Airtop | 4,000ms | startup time; successAffiliatedapprox_startupby AIMultiple (has disclosed commercial ties to tested vendors)not statedclient sideretrieved 2026-10-25n=20source |
| Lightpanda | 4.5s | 940 pages at 25 tabs: wall time, memory, CPUVendor claimwallby Lightpandamachine not statedserver sidepublished 2026-10-19n not statedsource |
| Spider | 45ms | static time to first result; average pages/s over 1,000 URLsVendor claimttfr_staticby Spider (designed the test)c6i.4xlarge client in us-east-2client sideupdated 2026-09-02n=1,000source |
| Firecrawl | 310ms | static time to first result; average pages/s (in Spider's test)Competitor-runttfr_staticby Spider (designed the test and competes with Firecrawl)c6i.4xlarge client in us-east-2client sideupdated 2026-09-02n=1,000source |
| Cloudflare (Browser Run: warm Chromium vs Kitesurf) | 472ms | HTML extraction wall time (median of 5 runs over 14 URLs)Vendor claimp50_warm_chromiumby Cloudflare (Celso Martinho)Cloudflare internalserver sidepublished 2026-08-06n not statedsource |
| Browser Use cloud (Firecracker snapshot-resume) | 825ms | session create in a 10,000-session stress testVendor claimp50by Browser Usethrough the public API (region not stated)client sidepublished 2026-06-15n not statedsource |
| rs-trafilatura | 0.903F1 | main-content extraction F1 on the WCXB held-out test set; time per pageAffiliatedtestby Murrough Foley (WCXB author, also wrote rs-trafilatura)AMD Ryzen, threading not statedserver sidepublished 2026-05n not statedsource |
| Kernel | 30ms | browser create (vendor-reported)Vendor claimp50by Kernelunstated (Kernel browsers run in us-east only)client sidepublished 2026-04-24n not statedsource |
| Spider Browser | 705ms | browser create p50 / p95; end to endVendor claimp50by Spidernot statedclient sidepublished 2026-02-17n=50source |
| Firecrawl | 3,387ms | scrape p95 on 1,000 URLs (firecrawl/scrape-content-dataset-v1)Vendor claimp95by FirecrawlFirecrawl's internal runclient sidepublished 2026-01-13n=1,000source |
render
Styled screenshot
1600×900 at DPR 1, JPEG or WebP, quiet window included, server side.
Styled screenshot at DPR 2
The same capture at device pixel ratio 2.
Each extra variant
Time each additional encoding of the same capture adds.
10-second scripted demo
From request to finished MP4 on a HAR-cached app. The first recording pass is reported separately.
30-second narrated demo
With text-to-speech on the GPU slice; a CPU text-to-speech row is separate.
Encode throughput
Frames encoded per second across concurrent jobs, x264 veryfast CRF 20, on a named content mix within render's CPU budget.
screenshot total, PNG with a transparent background
video job total on the first (recording) pass, no HAR cache yet
narrated video job total, 30 s output, TTS on CPU
What others publish
Each table holds numbers measured the same way, from the same side and kind of vantage point, best first. B3OS joins a table only with a number measured that way too.
uncached screenshot, average over 7 URLs (DPR 2, full page, ad blocking)
client side · client, location not stated · ms · ascending (lower is better)
10 more cited numbers for render
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| Remotion Lambda | 720s | 2 h video, 1920x1080 at 30 fps (216,000 frames)Vendor claimwallby Remotion200 warm ARM64 Lambdas, us-east-1server sideretrieved 2026-10-25n not statedsource |
| Shotstack | 0.05–0.2USD/min | render price per output minuteVendor claimpay-as-you-go to $499 planby Shotstacklist priceclient sideretrieved 2026-10-25n not statedsource |
| Remotion | 0.01USD/render | Remotion automation licenceVendor claimAutomatorsby Remotionlist priceclient sideretrieved 2026-10-25n not statedsource |
| HeyGen (HyperFrames) | 0.1USD/min | HTML-to-video render price per output minute, 1080p60Vendor claimEnterpriseby HeyGenlist priceclient sideretrieved 2026-10-25n not statedsource |
| Editframe | 0.02USD/processing-min | cloud rendering per minute of server processingVendor claim≤2 MPby Editframelist priceclient sideretrieved 2026-10-25n not statedsource |
| Creatomate | 0.38USD/min | render price per output minuteVendor claimEssential, about 14 credits/min at 720p25by Creatomatelist priceclient sideretrieved 2026-10-25n not statedsource |
| Microlink | 49USD/month | screenshot API planVendor claimPro, 46,000 requests (~$1.07/1k)by Microlinklist priceclient sideretrieved 2026-10-25n not statedsource |
| Microlink | 968ms | uncached screenshot of example.com (average)Vendor claimmeanby MicrolinkNew Yorkclient sidemeasured 2026-03n not statedsource |
| Remotion Lambda | 15.52s | "1 minute" video: 1280x720 at 24 fps (1,440 frames), video-in-videoVendor claimcoldby RemotionAWS us-east-1, default concurrency (~72 Lambdas by the documented formula)server sideversion-date 2025-12-03n not statedsource |
| Remotion Lambda | 56.09s | "10 minute HD": 1280x720 at 24 fps (14,315 frames)Vendor claimwarmby RemotionAWS us-east-1server sideversion-date 2025-12-03n not statedsource |
sandboxes
Claim to first exec
Create a sandbox and run its first command, end to end on the same host, at idle. Pool depth stated.
Claim to first exec, 100 at once
The same under a burst of 100 simultaneous claims.
Exec round trip
Run /bin/true in a running sandbox: b3osd to the guest agent, process spawn, exit status back.
Pause and resume
Each of pause and resume on a running sandbox.
Fork
One fork of a sandbox with up to 128 MiB of RAM and 64 MiB dirty. Larger sizes are published as a curve.
Time to interactive, ComputeSDK harness
Create a sandbox and run node -v, measured by ComputeSDK's own harness from their runners: the shape other sandbox providers are measured in.
What others publish
Each table holds numbers measured the same way, from the same side and kind of vantage point, best first. B3OS joins a table only with a number measured that way too.
DAX workload (install, typecheck, run) total
client side · client, location not stated · s · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| promigence | 32.4s | n not statedsourcesingle run (2026-10-23) |
| isorun | 34.3s | n not statedsourcesingle run (2026-10-23) |
| MIOSA | 40.7s | n not statedsourcesingle run (2026-10-23) |
| Blaxel | 49.8s | n not statedsourcesingle run (2026-10-23) |
| Vercel Sandbox | 63.8s | n not statedsourcesingle run (2026-10-23) |
| Daytona | 74.4s | n not statedsourcesingle run (2026-10-23) |
| Cloudflare Sandbox | 149.6s | n not statedsourcesingle run (2026-10-23) |
| declaw | 230.3s | n not statedsourcesingle run (2026-10-23) |
TTI, 100 concurrent (burst)
client side · client, location not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| isorun | 33.25ms | measured 2026-09-11n=100sourcebest full run ever (2026-09-11) |
| MIOSA | 57.1ms | measured 2026-10-23n=100sourcebest run (2026-10-23) |
| MIOSA | 57.1ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| isorun | 74.9ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| isorun | 74.9ms | measured 2026-10-23n=100sourcemedian of per-run medians (44 runs, 2026-02-21 to 2026-10-23) |
| promigence | 91.8ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| declaw | 139.1ms | measured 2026-06-17n=100sourcebest run (2026-06-17) |
| Northflank | 158.3ms | measured 2026-07-17n=100sourcebest run (2026-07-17); typical 297.5 ms over 46 runs |
| MIOSA | 192.7ms | measured 2026-10-23n=100sourcemedian of per-run medians (10 runs, 2026-02-21 to 2026-10-23) |
| Daytona | 231.9ms | measured 2026-04-11n=100sourcebest run (2026-04-11) |
| Blaxel | 335.1ms | measured 2026-07-31n=100sourcebest run (2026-07-31) |
| Vercel Sandbox | 403.2ms | measured 2026-07-17n=100sourcebest run (2026-07-17) |
| declaw | 430ms | measured 2026-10-23n=100sourcemedian of per-run medians (97 runs, 2026-02-21 to 2026-10-23) |
| Blaxel | 441.8ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| E2B | 442.7ms | measured 2026-07-11n=100sourcebest run (2026-07-11) |
| Daytona | 453ms | measured 2026-10-23n=100sourcemedian of per-run medians (134 runs, 2026-02-21 to 2026-10-23) |
| Cloudflare Sandbox | 536.3ms | measured 2026-10-02n=100sourcebest run (2026-10-02) |
| Modal | 552.3ms | measured 2026-07-08n=100sourcebest run (2026-07-08) |
| E2B | 639.7ms | measured 2026-10-23n=100sourcemedian of per-run medians (143 runs, 2026-02-21 to 2026-10-23) |
| Cloudflare Sandbox | 647.84ms | measured 2026-09-25n=100sourcethe 2026-09-25 run Cloudflare cited after its rebuild |
| Cloudflare Sandbox | 682.1ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| Vercel Sandbox | 718.4ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| Vercel Sandbox | 752.3ms | measured 2026-10-23n=100sourcemedian of per-run medians (139 runs, 2026-02-21 to 2026-10-23) |
| Freestyle | 855.9ms | measured 2026-09-10n=100sourcebest run (2026-09-10) |
| declaw | 989.9ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| Modal | 1,070.6ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| Daytona | 1,094.6ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| Blaxel | 1,247.9ms | measured 2026-10-23n=100sourcemedian of per-run medians (118 runs, 2026-02-21 to 2026-10-23) |
| Freestyle | 1,437.6ms | measured 2026-10-23n=100sourcemedian of per-run medians (11 runs, 2026-02-21 to 2026-10-23) |
| E2B | 1,439.4ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| Modal | 1,668.4ms | measured 2026-10-23n=100sourcemedian of per-run medians (142 runs, 2026-02-21 to 2026-10-23) |
| Cloudflare Sandbox | 2,066.4ms | measured 2026-10-23n=100sourcemedian of per-run medians (124 runs, 2026-02-21 to 2026-10-23) |
| Freestyle | 3,237.5ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
| CodeSandbox | 33,772ms | measured 2026-10-23n=100sourcelatest run (2026-10-23) |
TTI, sequential
client side · client, location not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| isorun | 12.04ms | Supersededmeasured 2026-07-17n=100sourcebest run (2026-07-17) |
| declaw | 13.2ms | Supersededmeasured 2026-08-07n=100sourcebest run (2026-08-07) |
| declaw | 13.2ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| isorun | 16.8ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| isorun | 25ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (30 runs) |
| declaw | 45.7ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (83 runs) |
| Northflank | 64.5ms | Supersededmeasured 2026-07-17n=100sourcebest run (2026-07-17) |
| Northflank | 82.8ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| Daytona | 94.2ms | Supersededmeasured 2026-03-14n=100sourcebest run (2026-03-14) |
| Northflank | 152.7ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (45 runs) |
| Blaxel | 196.9ms | Supersededmeasured 2026-07-17n=100sourcebest run (2026-07-17) |
| Daytona | 197ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (130 runs) |
| E2B | 233.3ms | Supersededmeasured 2026-03-11n=100sourcebest run (2026-03-11) |
| Blaxel | 251.4ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| Vercel Sandbox | 308.8ms | Supersededmeasured 2026-07-17n=100sourcebest run (2026-07-17) |
| Vercel Sandbox | 420.5ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| E2B | 452.7ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (130 runs) |
| Modal | 457.6ms | Supersededmeasured 2026-07-17n=100sourcebest run (2026-07-17) |
| Blaxel | 536.2ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (130 runs) |
| Modal | 548.9ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| E2B | 575.5ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| Vercel Sandbox | 577.3ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (128 runs) |
| Daytona | 988.1ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
| Cloudflare Sandbox | 1,364.3ms | Supersededmeasured 2026-05-06n=100sourcebest run (2026-05-06) |
| Modal | 1,467.2ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (126 runs) |
| Cloudflare Sandbox | 1,728ms | Supersededmeasured 2026-08-07n=100sourcemedian of per-run medians (115 runs) |
| Cloudflare Sandbox | 2,000.5ms | Supersededmeasured 2026-08-07n=100sourcelast sequential run (2026-08-07; mode retired) |
sandbox start (300 starts)
client side · client, location not stated · ms · ascending (lower is better)
create; resume to first command
client side · client, location not stated · ms · ascending (lower is better)
34 more cited numbers for sandboxes
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| zeroboot | 0.79ms | template fork primitiveVendor claimp50by zeroboot (prototype)same hostserver sideretrieved 2026-10-25n not statedsource |
| Unikraft | 10ms | advertised start time (marketing, no method)Vendor claimmaxby Unikraftnone statedclient sideretrieved 2026-10-25n not statedsource |
| Vercel Sandbox | 0.3408USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Vercel Sandboxlist priceclient sideretrieved 2026-10-25n not statedsource |
| Northflank | 0.0667USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Northflanklist priceclient sideretrieved 2026-10-25n not statedsource |
| Modal | 0.2379USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Modallist priceclient sideretrieved 2026-10-25n not statedsource |
| Lizard | 0.0162USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Lizardlist priceclient sideretrieved 2026-10-25n not statedsource |
| E2B | 0.1656USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby E2Blist priceclient sideretrieved 2026-10-25n not statedsource |
| Daytona | 0.1656USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Daytonalist priceclient sideretrieved 2026-10-25n not statedsource |
| Cloudflare Containers | 0.198–0.22USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Cloudflare Containerslist priceclient sideretrieved 2026-10-25n not statedsource |
| boxd | 0.039EUR/vCPU-h | boxd EU rate cardVendor claimlistby boxdlist priceclient sideretrieved 2026-10-25n not statedsource |
| Blaxel | 0.1656USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim100% CPUby Blaxellist priceclient sideretrieved 2026-10-25n not statedsource |
| AWS Bedrock AgentCore Code Interpreter | 0.056USD/h | price of 2 vCPU / 4 GiB for one hourVendor claim10% CPUby AWS Bedrock AgentCore Code Interpreterlist priceclient sideretrieved 2026-10-25n not statedsource |
| OpenAI (containers) | 0.03USD/20 min | container price per 20-minute sessionVendor claim1 GBby OpenAIlist priceclient sideretrieved 2026-10-25n not statedsource |
| Anthropic (code execution tool) | 0.05USD/container-hour | code execution container priceVendor claimafter 1,550 free hours/monthby Anthropiclist priceclient sideretrieved 2026-10-25n not statedsource |
| Perplexity SPACE | 60ms | sandbox creationVendor claimp50by Perplexityproduction, server-side, identical traffic vs an unnamed previous providerserver sideretrieved 2026-10-25n not statedsource |
| Vercel Sandbox | 10,000concurrent | concurrency and creation limitsVendor claimProby Vercel Sandboxdocumented limitsclient sideretrieved 2026-10-25n not statedsource |
| Modal | 5,000containers | concurrency and creation limitsVendor claimTeamby Modaldocumented limitsclient sideretrieved 2026-10-25n not statedsource |
| E2B | 1,100concurrent | concurrency and creation limitsVendor claimPro maxby E2Bdocumented limitsclient sideretrieved 2026-10-25n not statedsource |
| Cloudflare Containers | 1,500vCPU | concurrency and creation limitsVendor claimaccount defaultby Cloudflare Containersdocumented limitsclient sideretrieved 2026-10-25n not statedsource |
| boxd | 50machines | concurrency and creation limitsVendor claimper org defaultby boxddocumented limitsclient sideretrieved 2026-10-25n not statedsource |
| Blaxel | 100,000concurrent | concurrency and creation limitsVendor claimTier 9by Blaxeldocumented limitsclient sideretrieved 2026-10-25n not statedsource |
| Freestyle | 65ms | advertised start time (marketing, no method)Vendor claimmaxby Freestylenone statedclient sideretrieved 2026-10-25n not statedsource |
| Firecracker | 125ms | boot to /sbin/init; VMM start; VMM memoryVendor claimboot maxby Firecracker projectm5d.metal (HT off), m6g.metalserver sideretrieved 2026-10-25n not statedsource |
| Daytona | 90ms | advertised start time (marketing, no method)Vendor claimmaxby Daytonanone statedclient sideretrieved 2026-10-25n not statedsource |
| Cloudflare | 5.387s | containers started by one accountVendor claim100,000 containersby Cloudflare (preliminary test)six locationsserver sideretrieved 2026-10-25n not statedsource |
| boxd | 5ms | creation to running, median (279,577 machines)Vendor claimp50by boxdserver-side (production, Moyai)server sideretrieved 2026-10-25n not statedsource |
| Blaxel | 25ms | resume from standbyVendor claimmaxby Blaxelserver-sideserver sideretrieved 2026-10-25n not statedsource |
| AWS Lambda MicroVMs | 4.04s | launch to RUNNING; first response; suspended-VM task; warm taskIndependentlaunchby AWS Hero practitioner who built the tooling he evaluatesAWS us-east-1client sidemeasured 2026-10-08n=20source |
| DeltaBox | 10.83ms | checkpoint work (hidden under inference); rollback; forkVendor claimcheckpointby DeltaBox authors (SJTU, Huawei)authors' own evaluationserver sidepublished 2026-06-08n not statedsource |
| CubeSandbox | 21.5–25.7MB | host memory per VM, amortizedVendor claim100 to 1,000 VMsby Tencent (CubeSandbox 2026-06-01 perf report)same hostserver sidepublished 2026-06-01n not statedsource |
| CubeSandbox | 47.8ms | create, serial (2 vCPU / 2 GiB)Vendor claimmeanby Tencent (CubeSandbox 2026-06-01 perf report)same host, bare metal BMI5 (Xeon 8255C, 96 threads), POST /sandboxes to runningclient sidepublished 2026-06-01n not statedsource |
| CubeSandbox | 276.1ms | create at 50 concurrentVendor claimmeanby Tencent (CubeSandbox 2026-06-01 perf report)same host, bare metalclient sidepublished 2026-06-01n not statedsource |
| CubeSandbox | 98.1ms | create at 20 concurrentVendor claimmeanby Tencent (CubeSandbox 2026-06-01 perf report)same host, bare metalclient sidepublished 2026-06-01n not statedsource |
| CubeSandbox | 88.7ms | create at 10 concurrentVendor claimmeanby Tencent (CubeSandbox 2026-06-01 perf report)same host, bare metalclient sidepublished 2026-06-01n not statedsource |
routines
Pure step dispatch
Dispatch of steps with no side effects in an ephemeral run, 1 KB payloads.
Pure step dispatch, p99
The same at the 99th percentile.
Action call from a step
A routine step calling a pack action in-process, upstream excluded, 1 KB payloads.
Durable step, standard
An effect step with standard durability, journal commit included.
Durable step, strict
An effect step with strict durability: an intent commit and a result commit.
Webhook to first step
From a hook delivery received to the first step started.
Cron lateness
How late a per-second cron starts its runs: start time minus scheduled time.
Pure step throughput
Pure steps completed per second across concurrent ephemeral runs.
Durable record throughput
Standard-durability effect records journaled per second, records up to 256 B.
What others publish
Each table holds numbers measured the same way, from the same side and kind of vantage point, best first. B3OS joins a table only with a number measured that way too.
delay of scheduled invocations
client side · client, location not stated · s · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| AWS EventBridge Scheduler | 0–50s | IndependentSupersededspreadby Serverless By Theodo (consultancy independent of AWS)10,000 samplespublished 2022-12-01n=10,000sourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.2 row 14) |
40 lightweight tasks, total
client side · vendor figure, method not stated · s · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| workflow engines | 1.222s | Competitor-runHatchetby Windmill (benchmarking competitors)m4.large, docker-composemeasured 2025n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md A11) |
single durable step, median
client side · vendor figure, method not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Restate | 3ms | Vendor claimp50 low loadby Restate3-node, 3-way replicated c6id.8xlarge clusterpublished 2025-02-20n not statedsource9-step workflow p50 31 ms (low) / 116 ms (high), p99 163 ms |
| Diagrid Catalyst (managed Dapr Workflows) | 25ms | Vendor claimp50 5 activitiesby Diagridclient-measured, schedule call to terminal state; 3 × m7i.2xlarge + Postgresupdated 2026-10-14n not statedsource10 workflows/s warm; ~2.6 ms per activity amortized ((25 − 12) / 5, a model) |
| Hatchet | 25ms | Vendor claimp95by Hatchethot workersretrieved 2026-10-25n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.1 item 8, F.2 row 8) |
| AWS Lambda durable functions | 41ms | Vendor claimp50 Pythonby AWS (durable-execution SDK maintainers)Lambda us-east-1, 1024 MB, warm, single runspublished 2026-09-15n=1,000sourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.1 item 4) |
| Temporal | 50ms | Vendor claimper activity (approx)by TemporalTemporal Cloud (approximate)retrieved 2026-10-25n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.2 row 5) |
| AWS Step Functions (Standard) | 201ms | Competitor-runSupersededsingleby DBOS (measuring a competitor)not statedpublished 2024-06-10n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.2 row 9) |
0-step workflow
client side · vendor figure, method not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Restate | 5ms | Vendor claimp50 low loadby Restate3-node clusterpublished 2025-02-20n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.3) |
StartWorkflowExecution API latency
server side · server side, as the provider reports it · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Temporal Cloud | 20ms | Vendor claimp50by TemporalTemporal Cloud API request latency, week-long windowmeasured 2026-08n not statedsourceJan 2026: 14 / 21 / 69 ms; StartActivityExecution 13 / 19 / 45; Signal 19 / 42 / 91; p99 SLO 200 ms |
eager workflow start (illustrative)
client side · client in the provider's region · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Temporal | 16.7ms | Vendor claimp50by Temporalstarter and worker in the namespace's AWS regionpublished 2024-04-29n not statedsourcevs 29.3 / 51.6 ms without eager start |
workflow executions per second, one instance
server side · vendor figure, method not stated · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| n8n | 220executions/s | single instanceby n8nc5a.large, webhook + Edit Fields noderetrieved 2026-10-25n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md A15) |
| Diagrid Catalyst | 530workflows/s | sustainedby Diagrid3 × m7i.2xlarge + one m7i.2xlarge Postgresupdated 2026-10-14n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.1 item 5) |
| DBOS | 43,000workflows/s | directby DBOSone db.m7i.24xlarge (96 vCPU, 120K IOPS io2)published 2026-04-23n not statedsourceno latency figures |
| Restate | 94,286actions/s | clusterby Restate3-node, 3-way replicated cluster (3 × 32 vCPU)published 2025-02-20n not statedsourcenone recorded beyond the metric and vantage (fact-check research-routines.md F.1 item 2) |
webhook-triggered 2-task flow at 1,000 executions/min
client side · vendor figure, method not stated · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Kestra 2.0 EE | 50ms | meanby Kestran2-standard-4; Kestra 2.0.0 EE (RabbitMQ + Postgres)n not statedsourcep99 ≤107 ms up to 7,000/min; OSS: 115 ms mean, 151 ms p99 at 1,000/min, collapses at 5,000/min |
| Activepieces | 163ms | p50by Activepiecesnot stated by the sourcen not statedsourcesync webhook ~0.2 s warm / ~2 s cold; ~0.5 s with every worker busy; 160 workers: p50 180 / p99 652 ms; the page gives no hardware or date |
10 more cited numbers for routines
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| Vercel Workflows | 60USD/1M steps | price per 1M workflow stepsVendor claimapprox (3 events per step at $0.02/1K events)by Vercel Workflowslist priceclient sideretrieved 2026-10-25n not statedsource |
| Temporal Cloud | 25–50USD/1M actions | price per 1M workflow stepsVendor claimself-serveby Temporal Cloudlist priceclient sideretrieved 2026-10-25n not statedsource |
| AWS Step Functions | 25USD/1M transitions | price per 1M workflow stepsVendor claimStandardby AWS Step Functionslist priceclient sideretrieved 2026-10-25n not statedsource |
| Restate Cloud | 10–25USD/1M actions | price per 1M workflow stepsVendor claimtieredby Restate Cloudlist priceclient sideretrieved 2026-10-25n not statedsource |
| AWS Lambda durable functions | 8USD/1M operations | price per 1M workflow stepsVendor claimlistby AWS Lambda durable functionslist priceclient sideretrieved 2026-10-25n not statedsource |
| Inngest | 15–50USD/1M executions | price per 1M workflow stepsVendor claimtieredby Inngestlist priceclient sideretrieved 2026-10-25n not statedsource |
| Hatchet | 30USD/1M runs | price per 1M workflow stepsVendor claimafter 1M freeby Hatchetlist priceclient sideretrieved 2026-10-25n not statedsource |
| Google Cloud Workflows | 10USD/1M steps | price per 1M workflow stepsVendor claiminternalby Google Cloud Workflowslist priceclient sideretrieved 2026-10-25n not statedsource |
| DBOS | 40–50USD/1M checkpoints | price per 1M workflow stepsVendor claimTeams / Pro overageby DBOSlist priceclient sideretrieved 2026-10-25n not statedsource |
| Cloudflare Workflows | 8USD/1M steps | price per 1M workflow stepsVendor claimafter 500Kby Cloudflare Workflowslist priceclient sideretrieved 2026-10-25n not statedsource |
actions
Declarative action overhead
Time added by the action runtime, upstream excluded, for responses up to 16 KB.
Input validation
JSON Schema validation of an action's input.
JavaScript action overhead
Warm overhead of a first-party JavaScript action.
T0 call total minus upstream, per MiB of upstream response, for responses over 16 KB
3 more cited numbers for actions
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| Zapier MCP | 3.4–5.1USD/1K calls | tool-call price per 1,000 callsVendor claim2M-task tier, annual to monthlyby Zapier MCPlist priceclient sideretrieved 2026-10-25n not statedsource |
| Composio | 0.3USD/1K calls | tool-call price per 1,000 callsVendor claimProby Composiolist priceclient sideretrieved 2026-10-25n not statedsource |
| Arcade | 10USD/1K calls | tool-call price per 1,000 callsVendor claimTeam ($0.01/call)by Arcadelist priceclient sideretrieved 2026-10-25n not statedsource |
infer
Time to first token
Streamed chat completion on the co-located model, with B3OS idle and at budgeted load.
Time per output token
The same stream, per output token.
What others publish
Each table holds numbers measured the same way, from the same side and kind of vantage point, best first. B3OS joins a table only with a number measured that way too.
LLM time to first token (median / P95) as reported by the guide
client side · vendor figure, method not stated · ms · ascending (lower is better)
time to first audio (vendor)
server side · server side, as the provider reports it · ms · ascending (lower is better)
| Who | Value | Provenance and conditions |
|---|---|---|
| Inworld (TTS-2 Flash) | 20ms | p90by Inworldn not statedsourceP90 time to first audio byte, server-side, excludes network |
| ElevenLabs (Flash v2.5) | 75ms | approxby ElevenLabsn not statedsourceexcluding application and network latency |
| Cartesia (Sonic 3.6) | 90ms | maxby Cartesian not statedsource"first audio in under 90ms", no conditions stated |
time to first audio, median of 50 sequential live streaming trials
client side · client, location not stated · ms · ascending (lower is better)
10 more cited numbers for infer
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| Inworld | 12.5–25USD/1M chars | TTS price per 1M charactersVendor claimTTS-2, list price by planby Inworldlist priceclient sideretrieved 2026-10-25n not statedsource |
| ElevenLabs | 0.04USD/1k chars | TTS price per 1,000 charactersVendor claimFlash/Turbo v2.5, v4 Turboby ElevenLabslist priceclient sideretrieved 2026-10-25n not statedsource |
| RunPod | 5.93USD/h | H200 per hourVendor claimserverlessby RunPodlist priceclient sideretrieved 2026-10-25n not statedsource |
| RunPod | 3.59USD/h | H200 per hourVendor claimon-demand pod (Community); Secure $5.29by RunPodlist priceclient sideretrieved 2026-10-25n not statedsource |
| Modal | 4.54USD/h | H200 per hourVendor claimserverless ($0.001261/s)by Modallist priceclient sideretrieved 2026-10-25n not statedsource |
| Daytona | 2.61USD/h | H200 per hourVendor claimpreemptibleby Daytonalist priceclient sideretrieved 2026-10-25n not statedsource |
| Fish Audio (Drama 3 (open weights)) | 88.9ms | time to first audio on one H200Vendor claimp50 c=1by Fish Audioone H200, SGLang-Omni, voice-clone streamingserver sideretrieved 2026-10-25n not statedsource |
| TTS models | 1,335Elo | TTS arena EloIndependentEleven v4 Turbo (CI 1318-1352)by Artificial Analysis (crowd votes)not applicable (quality score)server sideretrieved 2026-10-25n not statedsource |
| Kyutai (TTS 1.6B) | 150ms | time to first audio at batch 1; realtime factor at batch 64Vendor claimbatch 1 (computed)by Kyutaione H100, computed from per-step compute timeserver sidepublished 2025-09n not statedsource |
| Kokoro (hosted by Replicate, DeepInfra) | 0.65–0.99USD/1M chars | hosted Kokoro price per 1M charactersVendor claimlistby Kokoro (hosted by Replicate, DeepInfra)list priceclient sidepublished 2025-04n not statedsource |
Platform
Under every product
The HTTP floor is a round trip to a scaffold route on b3osd as the harness sees it: the error bar under every client-side number on this page.
HTTP floor
A round trip to a scaffold route on b3osd as the harness sees it: the floor under every client-side number.
p50150.729us
Least favorable of 12 counted runsMeasuredp50, median of 5 runsbest run 111.949 ussame-host, same NUMA node (harness 20-23, b3osd 16-19,80-83)client sideOct 26, 2026n=100,000raw dataresult fileConfiguration: tcp + node-token, same-node (NUMA), back-to-back, concurrency 1; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024Not measured yet: mixed loadBack to back4 runs
| Run | Value | Stat, sample and data |
|---|---|---|
| UDS, same NUMA nodeuds, same-node (NUMA), back-to-back, concurrency 1; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 49.25us | Measuredp50, median of 5 runsbest run 41.019 (p95 51.079, p99 56.438) usclient sideOct 26, 2026n=100,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 42.109 us |
| TCP, same NUMA nodetcp without a credential, same-node (NUMA), back-to-back, concurrency 1; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 47.81us | Measuredp50, median of 5 runsbest run 47.05 (p95 50.69, p99 53.87) usclient sideOct 26, 2026n=100,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 40.74 us |
| TCP + node token, same NUMA nodeHeadlinetcp + node-token, same-node (NUMA), back-to-back, concurrency 1; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 150.729us | Measuredp50, median of 5 runsbest run 111.949 (p95 118.479, p99 123.249) usclient sideOct 26, 2026n=100,000raw dataresult fileSame run: Server-Timing total 79 us · client round trip minus server total 71.588 us |
| UDS, cross NUMA nodeuds, cross-node (NUMA), back-to-back, concurrency 1; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 44.819us | Measuredp50, median of 5 runsbest run 44.619 (p95 48.659, p99 57.16) usclient sideOct 26, 2026n=100,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 37.719 us |
Idle gaps of 100 ms3 runs
| Run | Value | Stat, sample and data |
|---|---|---|
| UDS, same NUMA nodeuds, same-node (NUMA), idle gaps of 100 ms, one at a time; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 87.5us | Measuredp50, median of 5 runsbest run 87.024 (p95 131.723, p99 282.051) usclient sideOct 26, 2026n=1,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 78.218 us |
| TCP, same NUMA nodetcp without a credential, same-node (NUMA), idle gaps of 100 ms, one at a time; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 109.385us | Measuredp50, median of 5 runsbest run 108.291 (p95 145.883, p99 189.499) usclient sideOct 26, 2026n=1,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 100.02 us |
| TCP + node token, same NUMA nodetcp + node-token, same-node (NUMA), idle gaps of 100 ms, one at a time; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 189.732us | Measuredp50, median of 5 runsbest run 186.16 (p95 230.662, p99 290.364) usclient sideOct 26, 2026n=1,000raw dataresult fileSame run: Server-Timing total 79 us · client round trip minus server total 107.298 us |
Idle gaps of 3 s3 runs
| Run | Value | Stat, sample and data |
|---|---|---|
| UDS, same NUMA nodeuds, same-node (NUMA), idle gaps of 3 s, one at a time; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 394.238us | Measuredp50, median of 5 runsbest run 385.17 (p95 722.088, p99 722.088) usclient sideOct 26, 2026n=50raw dataresult fileSame run: Server-Timing total 20 us · client round trip minus server total 350.472 us |
| TCP, same NUMA nodetcp without a credential, same-node (NUMA), idle gaps of 3 s, one at a time; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 430.844us | Measuredp50, median of 5 runsbest run 380.632 (p95 574.787, p99 574.787) usclient sideOct 26, 2026n=50raw dataresult fileSame run: Server-Timing total 22 us · client round trip minus server total 403.107 us |
| TCP + node token, same NUMA nodetcp + node-token, same-node (NUMA), idle gaps of 3 s, one at a time; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 509.83us | Measuredp50, median of 5 runsbest run 341.967 (p95 1,149.926, p99 1,149.926) usclient sideOct 26, 2026n=50raw dataresult fileSame run: Server-Timing total 81 us · client round trip minus server total 422.194 us |
Open loop2 runs
| Run | Value | Stat, sample and data |
|---|---|---|
| UDS, same NUMA nodeuds, same-node (NUMA), open loop, constant arrivals at 2000/s; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 40.868us | Measuredp50, median of 5 runsbest run 40.615 (p95 43.174, p99 51.409) usclient sideOct 26, 2026n=100,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 33.11 us |
| TCP, same NUMA nodetcp without a credential, same-node (NUMA), open loop, constant arrivals at 2000/s; path=/v1/vision, auth=true, response=scaffold JSON (~50 B), max_sockets=1024 | 49.276us | Measuredp50, median of 5 runsbest run 49.21 (p95 52.355, p99 64.777) usclient sideOct 26, 2026n=100,000raw dataresult fileSame run: Server-Timing total 7 us · client round trip minus server total 41.62 us |
connections (vault)
3 more cited numbers for connections (vault)
Published by vendors and third parties, each measured its own way. They are listed for reference and not compared with each other or with B3OS.
| Who | Value | What, provenance and conditions |
|---|---|---|
| Vercel Connect | 3USD/1K token requests | token vault price per 1,000 requestsVendor claimProby Vercel Connectlist priceclient sideretrieved 2026-10-25n not statedsource |
| Infisical | 2USD/1K brokered requests | token vault price per 1,000 requestsVendor claimafter 5,000 free/monthby Infisicallist priceclient sideretrieved 2026-10-25n not statedsource |
| AWS Bedrock AgentCore Identity | 0.01USD/1K token or key requests | token vault price per 1,000 requestsVendor claimlistby AWS Bedrock AgentCore Identitylist priceclient sideretrieved 2026-10-25n not statedsource |
Method
How we measure
Provenance on every number
Measured (ours, with raw data), vendor claim, independent, competitor-run or affiliated. Each number also carries its vantage, side, date, sample count and a raw-data link.
Server side means the whole request
Server-side numbers run from the first request byte to the last response byte on the node. Client-side numbers are labeled client side.
Open-loop load
Load generators send at a constant arrival rate and time each request from when it should have been sent, so queueing shows up in the results.
Three regimes
Back to back, with idle gaps of 100 ms and 3 s, and under mixed load with B3IQ inference running.
Locked runs only
Published runs hold the bench lock and record the active services, load average, versions and commit. Anything else is a dev run and stays off this site.
Five runs or more
We publish the median of run medians and the best run, with the sample count.
Like for like
Competitors are measured the way their own benchmarks measure them. Same-host numbers never sit in a row beside client-measured competitor numbers.
Baselines are not results
Before any product code existed we measured the node's floors: microVM restore, browser spawn, disk sync, frame capture. Those runs did not hold the bench lock, so they shaped the design and stay off this page.