Self-hosted options spread fixed monthly costs over the monthly volume, so their cost per job changes with it; see the volume table.
Speed
× faster than GitHub-hosted (ubuntu-latest) · higher is betterCost per job
USD per $1.00 spent on GitHub-hosted (ubuntu-latest), at 100,000 jobs a month · lower is betterWorkload by workload
RunsOn had the lowest median time of the two on 3 of 12 workloads, GitHub-hosted larger runner (4 vCPU) on 9.| Workload | RunsOn | GitHub-hosted larger runner (4 vCPU) | Lowest median |
|---|---|---|---|
| Burst: 20 jobs at once | 177 s | 154 s | GitHub-hosted larger runner (4 vCPU) |
| cli | 327 s | 192 s | GitHub-hosted larger runner (4 vCPU) |
| codex-lint | 623 s | 476 s | GitHub-hosted larger runner (4 vCPU) |
| container | 174 s | 185 s | RunsOn |
| fd | 89 s | 66 s | GitHub-hosted larger runner (4 vCPU) |
| flask | 38 s | 21 s | GitHub-hosted larger runner (4 vCPU) |
| guava | 897 s | 946 s | RunsOn |
| monorepo | 288 s | 220 s | GitHub-hosted larger runner (4 vCPU) |
| pydantic | 147 s | 154 s | RunsOn |
| ts | 570 s | 435 s | GitHub-hosted larger runner (4 vCPU) |
| vite | 437 s | 288 s | GitHub-hosted larger runner (4 vCPU) |
| vue | 101 s | 67 s | GitHub-hosted larger runner (4 vCPU) |
Cost by volume
Mean cost per job in USD, from the benchmark’s sensitivity results| Volume | RunsOn | GitHub-hosted larger runner (4 vCPU) |
|---|---|---|
| 100,000 jobs a month | $0.121 | $1.387 |
| 10,000 jobs a month | $0.250 | $1.387 |
| 1,000 jobs a month | $1.431 | $1.387 |
Failed runs
Counted, never replaced- RunsOn
- 1 of 360 measured runs (0.3%)
- GitHub-hosted larger runner (4 vCPU)
- 3 of 360 measured runs (0.8%)
Each configuration page lists where its failures happened. All losses.
All results for this pair
One line per configuration pairing, generated from the benchmark data- GitHub-hosted larger runner (4 vCPU) ran jobs 1.3× faster than RunsOn (95% interval 1.3× to 1.3×); RunsOn cost 91% less per job (at 100,000 jobs a month).