RunsOn m9g.xlarge · EBS gp3 vs Blacksmith 4 vCPU arm64
RunsOn does each build for 1.8–2.9× less and 1.3–2.5× faster. Both 4 vCPU arm64.
All three builds 2.1× cheaper on RunsOn: $0.0510 vs $0.1052RunsOn 1.6× faster: 12m 12s vs 19m 37s
Rust build 2.9× cheaper on RunsOn: $0.0091 vs $0.0267RunsOn 2.5× faster: 2m 02s vs 5m 04s
TypeScript build 2.2× cheaper on RunsOn: $0.0061 vs $0.0132RunsOn 2.4× faster: 1m 00s vs 2m 21s
Docker build 1.8× cheaper on RunsOn: $0.0358 vs $0.0654RunsOn 1.3× faster: 9m 10s vs 12m 12s
RunsOn m9g.xlarge · EBS gp3
jobs ran from Amazon.com (US)
Blacksmith 4 vCPU
jobs ran from Secured Servers (US)
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 | Blacksmith | Gap |
|---|---|---|---|
| Cost | |||
| Cost per Rust build | $0.0091 | $0.0267 | 2.9× RunsOn |
| Cost per TypeScript build | $0.0061 | $0.0132 | 2.2× RunsOn |
| Cost per Docker build | $0.0358 | $0.0654 | 1.8× RunsOn |
| Price per minute | $0.0018 | $0.0050 | 2.9× RunsOn |
| Real builds, wall time | |||
| Rust build (spotify-player) | 2m 02s | 5m 04s | 2.5× RunsOn |
| TypeScript build (opencode) | 1m 00s | 2m 21s | 2.4× RunsOn |
| Docker build (PostHog) | 9m 10s | 12m 12s | 1.3× RunsOn |
| CPU & memory | |||
| PassMark single-thread (points) | 2,463 | 1,343 | 1.8× RunsOn |
| PassMark CPU Mark, all cores (points) | 5,614 | 3,778 | 1.5× RunsOn |
| sysbench CPU, 1 thread (events/s) | 4,015 | 930 | 4.3× RunsOn |
| 7-Zip compression (MIPS) | 34,007 | 15,351 | 2.2× RunsOn |
| Memory read bandwidth | 27.7 GiB/s | 9.0 GiB/s | 3.1× RunsOn |
| Measurement | RunsOn | Blacksmith | Gap |
|---|---|---|---|
| Workspace disk (fio) | |||
| Random read, 4k QD32 (IOPS) | 2,994 | 155,975 | 52.1× Blacksmith |
| Random write, 4k QD32 (IOPS) | 2,993 | 24,132 | 8.1× Blacksmith |
| Random read, 4k QD1 (IOPS) | 1,818 | 24,897 | 13.7× Blacksmith |
| QD1 read latency, p99 | 938 µs | 39 µs | 23.9× Blacksmith |
| Sequential read | 401 MiB/s | 1.7 GiB/s | 4.4× Blacksmith |
| Sequential write | 401 MiB/s | 742 MiB/s | 1.9× Blacksmith |
| Sync write, 4k + fdatasync (IOPS) | 543 | 7,118 | 13.1× Blacksmith |
| Network, cache & Docker | |||
| Download from GitHub | 287 MiB/s | 85 MiB/s | 3.4× RunsOn |
| Cache restore, 4 GB (actions/cache) | 18s | 36s | 2.0× RunsOn |
| Cache save, 4 GB (actions/cache) | 14s | 21s | 1.5× RunsOn |
| docker pull | 5.7s | 13.7s | 2.4× RunsOn |
| Database | |||
| pgbench read/write (TPS) | 3,235 | 1,893 | 1.7× RunsOn |
| pgbench read-only (TPS) | 64,243 | 14,786 | 4.3× RunsOn |
| Queue | |||
| Queue under burst load | 18s | 15s | 1.2× Blacksmith |
- ≈ 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