Microbench compares Koko against Playwright bundled Chromium (headless) on local static HTML fixtures in koko-test/. Last run: 2026-06-29.
Executive summary
- Host: Apple M1, macOS 24.3.0, Node v22.19.0
- Koko profile:
chrome-macos-catalina - Startup ratio (V/C): 1.01× (+1.3% vs Chromium)
- Navigation geomean ratio: 0.22× (−78% vs Chromium — Koko faster)
- JS workload geomean ratio: 1.20× (+20% vs Chromium)
Ratio > 1.0 means Koko is slower; < 1.0 means Koko is faster.
Cold start
| Browser | Mean (ms) | Median (ms) |
|---|---|---|
| Koko | 105.6 | 105.8 |
| Chromium | 104.3 | 104.6 |
| Ratio | 1.01× |
Static page navigation
Warmup: 1 · Measured repeats: 3 · Wait: domcontentloaded
| Page | Koko mean | Chromium mean | Ratio |
|---|---|---|---|
dom-heavy.html | 19.9 ms | 72.7 ms | 0.27× |
js-compute.html | 8.1 ms | 37.9 ms | 0.21× |
minimal.html | 8.1 ms | 37.9 ms | 0.21× |
mixed.html | 9.4 ms | 48.7 ms | 0.19× |
Geomean ratio: 0.22×
In-page JS workloads
| Workload | Page | Koko | Chromium | Ratio |
|---|---|---|---|---|
| dom-query | dom-heavy.html | 0.3 ms | 0.2 ms | 1.69× |
| json-loop | js-compute.html | 3.3 ms | 2.7 ms | 1.22× |
| hash-loop | js-compute.html | 1.2 ms | 1.4 ms | 0.84× |
Geomean ratio: 1.20×
Takeaway
Koko is dramatically faster on static navigation (local fixtures) with comparable startup. In-page JS micro-workloads are slightly slower on average — acceptable trade-off for lower memory footprint at scale.