# kitesurf bench report — 2026-06-05

commit: `c8a9da7` · backends: kitesurf, container · endpoints: screenshot, html · runs/combo: 5 (+ 2 warmup)
target: https://kitesurf-bench.rendering.cfdata.org

> Refactor autoresearch for memory optimization + port wasm-memprof + autoresearch memory opts @lduarte

## Summary (median wall time)

| Page | kitesurf/screenshot | kitesurf/html | container/screenshot | container/html |
|---|--:|--:|--:|--:|
| Example Domain | 521ms | 482ms | 486ms | 290ms |
| Hacker News | 630ms | 877ms | 896ms | 1003ms |
| Cloudflare Developer Docs | 1084ms | 1600ms | 1137ms | 1146ms |
| The Cloudflare Blog | 1608ms | 1294ms | 1356ms | 1152ms |
| Wikipedia Portal | 715ms | 597ms | 1080ms | 920ms |
| Der Spiegel | 1082ms | 1070ms | 1871ms | 1754ms |
| El Mundo | 1074ms | 1070ms | 2574ms | 2597ms |
| TodoMVC · JavaScript ES6 | 521ms | 513ms | 630ms | 415ms |
| TodoMVC · React | 687ms | 552ms | 662ms | 449ms |
| TodoMVC · Vue | 745ms | 627ms | 660ms | 468ms |
| TodoMVC · Angular | 983ms | 951ms | 659ms | 446ms |
| TodoMVC · Preact | 524ms | 492ms | 543ms | 413ms |

Notes:

- Values are run medians across recorded runs. p95 and min/max are in the JSON.
- Backends are dispatched from inside the `kitesurf-bench` worker via RPC bindings: `env.KITESURF.fetch(/screenshot|/html)` for kitesurf (service binding to the engine), `env.BROWSER.quickAction('screenshot'|'content', …)` for browser-run (Browser Rendering RPC), and `env.CONTAINER_HOST.fetch(…)` for container (sibling worker fronting its container backend). Wall time is the orchestrator's `performance.now()` span; `backendWallMs` / `backendCpuMs` in the JSON come from Workers Observability (kitesurf) or container-side timing headers (container). None of the measurement paths traverse the public internet.
- A cell shows `—` when every recorded run for that combination errored. See `rows` in the JSON for individual failure messages.
