/ 4 min read / JunHyoung Ryu

Remote Browser Benchmark

How fast is "Hello, browser?"

TL;DR

Fig.1. Mean total duration (ms)

Full code & raw results: https://github.com/steel-dev/browserbench

Why this benchmark matters?

Agents don’t just “do work” on pages; they start and stop browsers over and over: new identities, clean slates, anti-bot resets, concurrency fan-out.

If you save ~1s per loop and your agent runs 20 loops, you’ve just won ~20s on a single task. Multiply that across hundreds of workers and thousands of tasks/day and you either delight users or grow a queue.

So we asked a simple question: How fast is “Hello, browser?”, and how much of the time is control plane (session creation/release) vs data plane (connect + navigate)?

What we measured

Provider-agnostic, minimal lifecycle with each vendor’s SDK:

Environment: AWS EC2 us-east-1
Runs: 5000 per provider

Steel runner (TypeScript, abbreviated):

TypeScript
const session = await client.sessions.create();
const browser = await chromium.connectOverCDP(session.cdpUrl);
const page = await browser.newPage();
await page.goto("https://google.com", { waitUntil: "domcontentloaded" });
await client.sessions.release(session.id);

We used Playwright over CDP for all vendors and mirrored the same four steps with each provider’s SDK. We did not supply any provider‑specific configuration, sessions ran on each vendor’s default settings

Results at a glance

Total time (create → connect → goto → release)

ProviderAvg (ms)Median (ms)p95 (ms)p99 (ms)
STEEL894.13867.01,090.01,340.05
KERNEL1,518.531,485.01,752.101,992.04
BROWSERBASE1,676.761,669.01,873.001,981.03
HYPERBROWSER3,657.113,665.55,338.006,695.05
ANCHORBROWSER8,001.297,919.011,561.0013,957.14

Fig. 2. Total duration distribution (ms)

Steel speedup (avg / p95):

Time saved for your agents (per 1,000 sessions):

Mind the tails. Some platforms show p99 spikes in the multi‑second range, the outliers users actually feel during bursts and autoscaling.

Where the time goes (stage breakdown)

ProviderCreateConnectGotoReleaseCreate+Release% of Total
STEEL181.57174.64490.2947.62229.19 ms25.6%
KERNEL261.10428.90533.95294.57555.67 ms36.6%
BROWSERBASE188.18517.37792.27178.99367.17 ms21.9%
HYPERBROWSER1,731.63347.60377.891,199.982,931.61 ms80.2%
ANCHORBROWSER3,796.55184.291,259.662,760.796,557.34 ms82.0%

Fig. 3. Control-plane cost (create + release) (ms)

Takeaways

Reliability (5,000 attempts/provider)

Most SDKs perform automatic retries on certain errors (e.g., transient network, provisioning). Our “success” counts a run as successful after retries, so these rates may overstate true first-attempt success and understate incident frequency. Inspect per-stage error/retry telemetry in your traces for an accurate picture.

Caveats

Production guidance for agent builders

Build with Steel

Humans use Chrome. Agents use Steel.
A headless browser API built for AI products: fast session starts, persistent profiles, stealth & CAPTCHA, live viewers + MP4 replays, and scaling without the DevOps tax.

Related posts