self-host →

RunsOn m8azn.xlarge · gp3 1000 MiB/s vs GitHub 4-⁠core x64

RunsOn does each build for 3.4–4.0× less and 1.9–2.6× faster. Both 4 vCPU x64.

All three builds 3.9× cheaper on RunsOn: $0.0645 vs $0.2498RunsOn 2.0× faster: 9m 21s vs 18m 27s
Rust build 3.4× cheaper on RunsOn: $0.0136 vs $0.0466RunsOn 2.0× faster: 1m 54s vs 3m 47s
TypeScript build 3.7× cheaper on RunsOn: $0.0072 vs $0.0268RunsOn 2.6× faster: 45s vs 1m 56s
Docker build 4.0× cheaper on RunsOn: $0.0437 vs $0.1764RunsOn 1.9× faster: 6m 42s vs 12m 44s

Side by side

Every measurement both runners share, cost first. The dot marks the better value; gap is the larger over the smaller.

Measurement RunsOn GitHub Gap
Cost
Cost per Rust build $0.0136 $0.0466 3.4× RunsOn
Cost per TypeScript build $0.0072 $0.0268 3.7× RunsOn
Cost per Docker build $0.0437 $0.1764 4.0× RunsOn
Price per minute $0.0047 $0.0120 2.5× RunsOn
Real builds, wall time
Rust build (spotify-⁠player) 1m 54s 3m 47s 2.0× RunsOn
TypeScript build (opencode) 45s 1m 56s 2.6× RunsOn
Docker build (PostHog) 6m 42s 12m 44s 1.9× RunsOn
CPU & memory
PassMark single-⁠thread (points) 4,257 2,370 1.8× RunsOn
PassMark CPU Mark, all cores (points) 15,102 6,130 2.5× RunsOn
sysbench CPU, 1 thread (events/s) 6,220 3,670 1.7× RunsOn
7-⁠Zip compression (MIPS) 31,030 16,137 1.9× RunsOn
Memory read bandwidth 40.8 GiB/s 20.9 GiB/s 2.0× RunsOn
Measurement RunsOn GitHub Gap
Workspace disk (fio)
Random read, 4k QD32 (IOPS) 15,994 19,587 1.2× GitHub
Random write, 4k QD32 (IOPS) 15,991 11,712 1.4× RunsOn
Random read, 4k QD1 (IOPS) 1,775 6,843 3.9× GitHub
QD1 read latency, p99 856 µs 251 µs 3.4× GitHub
Sequential read 1,002 MiB/s 394 MiB/s 2.5× RunsOn
Sequential write 1,001 MiB/s 394 MiB/s 2.5× RunsOn
Sync write, 4k + fdatasync (IOPS) 540 3,262 6.0× GitHub
Network, cache & Docker
Download from GitHub 256 MiB/s 91 MiB/s 2.8× RunsOn
Cache restore, 4 GB (actions/cache) 10s 41s 4.0× RunsOn
Cache save, 4 GB (actions/cache) 14s 30s 2.1× RunsOn
docker pull 5.0s 16.4s 3.3× RunsOn
Database
pgbench read/write (TPS) 3,758 2,797 1.3× RunsOn
pgbench read-⁠only (TPS) 163,575 20,013 8.2× RunsOn
Queue
Queue under burst load 20s 4s 5.0× GitHub
  • ≈ even: under 5% apart, or a build inside both runners' run-to-run spread
  • Queue: identical jobs queued at the same instant (burst suite)
  • RunsOn at EC2 spot, its default (7-day average of the cheapest us-east-1 zone's spot price, fetched 5 Oct 2026); the jobs ran on spot
  • Cost: a managed SaaS runner against RunsOn self-hosted on your AWS account; the effort of running it was not measured

Other head-to-heads