rickub/ci-benchpublic Fork 0
7764675fa1c9d7c6735a3c6e1394602a3cfb9bc8
Commits
Clone
git clone https://git.rickub.com/rickub/ci-bench.git
git clone ssh://git@rickub.com/rickub/ci-bench.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

RESULTS.md · 38 lines · 1.9 KBmarkdown Blame HistoryRaw
bench results: round 1 — rickub large vs GitHub ubuntu-latest, 10 interleaved rounds 7764675 Olivier Girardot 6h ago1# CI race — round 1 results (2026-09-13)
2
310 interleaved rounds per platform (G,R,G,R…, one commit per round pushed to both
4mirrors, 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).
6Silicon is NOT matched: rickub runs a Ryzen 9700X bare-metal node, GitHub runs its
7standard 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
28Honest 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
37Runs: rickub.com/rickub/ci-bench/actions (runs 1-10) ·
38github.com/ogirardot/ci-bench/actions/runs (34747021476…34747992384).