internal perf dashboard · repo · /wpt
wikipedia-portal · wall timeBoth backends run inside a single Cloudflare worker (kitesurf-bench). Wall time is measured by performance.now() around a single RPC dispatch per side: env.KITESURF.fetch(/screenshot|/html) for kitesurf, env.BROWSER.quickAction(…) for browser-run. No inter-machine network in the measurement.
| page | slug | kitesurf · screenshot | kitesurf · html | browser-run · screenshot | browser-run · html |
|---|---|---|---|---|---|
| Example Domain | example-com |
1437ms | 1290ms | 587ms | 513ms |
| Hacker News | hacker-news |
2296ms | 1486ms | 1752ms | 1472ms |
| Cloudflare Developer Docs | cf-developers |
2665ms | 1930ms | 1552ms | 1475ms |
| The Cloudflare Blog | cf-blog |
3755ms | 2528ms | 1132ms | 1252ms |
| Wikipedia Portal | wikipedia-portal |
2860ms | 1637ms | 1266ms | 872ms |
| TodoMVC · JavaScript ES6 | todomvc-js-es6 |
2618ms | 1325ms | 858ms | 678ms |
| TodoMVC · React | todomvc-react |
2172ms | 1346ms | 962ms | 558ms |
| TodoMVC · Vue | todomvc-vue |
2611ms | 1378ms | 892ms | 732ms |
| TodoMVC · Angular | todomvc-angular |
2675ms | 1399ms | 910ms | 715ms |
| TodoMVC · Preact | todomvc-preact |
2576ms | 1327ms | 801ms | 725ms |
Hover any cell for n / p95 / min / max.
wikipedia-portal| date | commit | kitesurf · screenshot | kitesurf · html | browser-run · screenshot | browser-run · html | note |
|---|---|---|---|---|---|---|
| 2026-05-13 23:07 | 38553d0 | 2860ms | 1637ms | 1266ms | 872ms | first wall-time baseline (cacheTTL=0 for browser-run) |
latest.md latest.json history.json badge.svg
# kitesurf bench report — 2026-05-13
commit: `38553d0` · backends: kitesurf, browser-run · endpoints: screenshot, html · runs/combo: 5 (+ 2 warmup)
target: https://kitesurf-bench.rendering.cfdata.org
> first wall-time baseline (cacheTTL=0 for browser-run)
## Summary (median wall time)
| Page | kitesurf/screenshot | kitesurf/html | browser-run/screenshot | browser-run/html |
|---|--:|--:|--:|--:|
| Example Domain | 1437ms | 1290ms | 587ms | 513ms |
| Hacker News | 2296ms | 1486ms | 1752ms | 1472ms |
| Cloudflare Developer Docs | 2665ms | 1930ms | 1552ms | 1475ms |
| The Cloudflare Blog | 3755ms | 2528ms | 1132ms | 1252ms |
| Wikipedia Portal | 2860ms | 1637ms | 1266ms | 872ms |
| TodoMVC · JavaScript ES6 | 2618ms | 1325ms | 858ms | 678ms |
| TodoMVC · React | 2172ms | 1346ms | 962ms | 558ms |
| TodoMVC · Vue | 2611ms | 1378ms | 892ms | 732ms |
| TodoMVC · Angular | 2675ms | 1399ms | 910ms | 715ms |
| TodoMVC · Preact | 2576ms | 1327ms | 801ms | 725ms |
Notes:
- Values are run medians across recorded runs. p95 and min/max are in the JSON.
- Both backends are invoked from inside the same Cloudflare worker (`packages/bench-report`) via RPC bindings: `env.KITESURF.fetch(/screenshot|/html)` and `env.BROWSER.quickAction('screenshot'|'content', …)`. Wall time is measured around a single `performance.now()` span on each side — no inter-machine network in the measurement.
- A cell shows `—` when every recorded run for that combination errored. See `rows` in the JSON for individual failure messages.