| bench results: round 1 — rickub large vs GitHub ubuntu-latest, 10 interleaved rounds 7764675 Olivier Girardot 5h ago | 1 | # CI race — round 1 results (2026-09-13) |
| 2 | |
| 3 | 10 interleaved rounds per platform (G,R,G,R…, one commit per round pushed to both |
| 4 | mirrors, 75 s spacing; push timestamps in `push-times.jsonl`). rickub arm ran the |
| 5 | `large` class (4 vCPU / 8 GiB) for vCPU parity with GitHub's ubuntu-latest (4 vCPU). |
| 6 | Silicon is NOT matched: rickub runs a Ryzen 9700X bare-metal node, GitHub runs its |
| 7 | standard Azure fleet — the probe-cpu row shows what that alone is worth. |
| 8 | |
| 9 | ## Medians (n=10, p95 in parens) |
| 10 | |
| 11 | | step | github | rickub | rickub advantage | |
| 12 | |---|---|---|---| |
| 13 | | rust cold build | 14.65 s (24.55) | **5.63 s** (7.38) | 2.6× median, 3.3× p95 | |
| 14 | | rust test | 1.51 s (2.79) | **0.37 s** (0.50) | 4.0× | |
| 15 | | docker build | 5.76 s (12.23) | **3.14 s** (3.36) | 1.8× median, 3.7× p95 | |
| 16 | | push → job start | 9.76 s (11.39) | **4.08 s** (4.75) | 2.4× (cross-clock caveat) | |
| 17 | | end-to-end wall (run create→update) | ~43 s | **~16 s** | ~2.7× | |
| 18 | |
| 19 | ## Runner probe (medians) |
| 20 | |
| 21 | | metric | github | rickub | |
| 22 | |---|---|---| |
| 23 | | single-core CPU | 220 kops/s | **595 kops/s** (2.7×) | |
| 24 | | scratch write (2 GiB dd burst) | **3,903 MB/s** | 3,459 MB/s | |
| 25 | | scratch read (page cache) | 17,864 MB/s | **30,422 MB/s** | |
| 26 | | workspace fs / free | ext-family / 87 GB | overlayfs on scratch / 29 GB | |
| 27 | |
| 28 | Honest readings: |
| 29 | - The build-step gap is dominated by single-thread CPU (2.7×) plus variance |
| 30 | (GitHub's p95 tails are 2-3× its own median; rickub's are tight). |
| 31 | - Storage BURST throughput is on par — a 2 GiB dd on GitHub's runners is not the |
| 32 | bottleneck it is on a write-worn consumer NVMe under sustained load. The zram |
| 33 | ("faster" class) A/B must therefore be judged on job wall-time and sustained |
| 34 | states, not on a dd burst. |
| 35 | - push→job-start spans two clocks (local Mac vs runner); treat as ±1-2 s. |
| 36 | |
| 37 | Runs: rickub.com/rickub/ci-bench/actions (runs 1-10) · |
| 38 | github.com/ogirardot/ci-bench/actions/runs (34747021476…34747992384). |