GitHub Actions runners with the best cache value
Latchkey Linux x64 leads the measured results at 134.6K per USD. 26 of 26 configurations have a score. All value scores use USD compute rates.
Cache transfers consume job time, and that time can be billed at the runner's compute rate. This page compares the combined cache save and restore score divided by quoted cost per vCPU per minute. Each runner uses its best tested complete backend, just like the default main table. The ranking updates from the shared measurements and rates during the site build.
By TechCompare · Updated
Current leaders
Results imported 2026-10-10. Pricing checked 2026-10-10. Higher is better. All operating systems and architectures are included. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).
Calculator
Ranked runner results
| RunnerRunner | CacheCache score | Cache valueCache value | Cost/vCPU/minCost/vCPU/minUSD | Max vCPUMax runner vCPU |
|---|---|---|---|---|
| Latchkey Linux x64 AMD EPYC 7R13 | 168.2 | 134.6K/USD | 0.0013 | 16 |
| Ubicloud Linux arm64 Ampere Altra Q80-30 | 50.8 | 81.2K/USD | 0.0006 | 30 |
| Blacksmith Linux x64 AMD EPYC (model hidden) | 154.4 | 77.2K/USD | 0.002 | 32 |
| Blacksmith Linux arm64 ARM64 (model undisclosed) | 88.2 | 70.6K/USD | 0.0013 | 32 |
| Avrea Linux x64 AMD EPYC 4585PX 16-Core | 103.8 | 51.9K/USD | 0.002 | 32 |
| StarSling Linux x64 AMD EPYC (model hidden) | 101 | 50.5K/USD | 0.002 | 64 |
| Ubicloud Linux x64 AMD Ryzen 9 7950X3D 16-Core | 48.5 | 48.5K/USD | 0.001 | 30 |
| BuildPulse Linux arm64 AWS Graviton (gen undisclosed) | 52.2 | 41.8K/USD | 0.0013 | 64 |
| RunJob Linux x64 AMD EPYC 7502 32-Core | 53.5 | 39.8K/USD | 0.0013 | 48 |
| Avrea Linux arm64 Apple M5 Max | 220.8 | 36.8K/USD | 0.006 | 16 |
| GitHub Linux x64 AMD EPYC 9V74 80-Core | 100.5 | 33.5K/USD | 0.003 | 96 |
| Namespace Linux x64 AMD EPYC (model hidden) | 49.6 | 33K/USD | 0.0015 | 64 |
| GitHub Linux arm64 Microsoft Cobalt 100 | 82.1 | 32.9K/USD | 0.0025 | 64 |
| GitHub Linux x86 AMD EPYC 7763 64-Core | 96.6 | 32.2K/USD | 0.003 | 96 |
| BuildPulse Linux x64 AMD EPYC 9R45 | 58 | 29K/USD | 0.002 | 64 |
| Avrea macOS arm64 Apple M5 Max | 251.6 | 25.2K/USD | 0.01 | 16 |
| Namespace Linux arm64 AmpereOne family (SKU undisclosed) | 34.7 | 23.1K/USD | 0.0015 | 32 |
| Blacksmith macOS arm64 Apple M4 Pro | 262.9 | 19.7K/USD | 0.0133 | 12 |
| GitHub macOS arm64 Apple M2 Pro | 145.8 | 7.1K/USD | 0.0207 | 5 |
| Blacksmith Windows x64 AMD EPYC 4565P 16-Core | 24.8 | 6.2K/USD | 0.004 | 32 |
| Avrea Windows x64 AMD EPYC 4585PX 16-Core | 17.6 | 4.4K/USD | 0.004 | 16 |
| GitHub Windows x64 AMD EPYC 7763 64-Core | 18.9 | 3.8K/USD | 0.005 | 96 |
| GitHub Windows x86 AMD EPYC 7763 64-Core | 17.5 | 3.5K/USD | 0.005 | 96 |
| GitHub Windows arm64 Cobalt 100 | 13.8 | 2.8K/USD | 0.005 | 64 |
| Namespace macOS arm64 Apple M4 Pro | 39.6 | 2.6K/USD | 0.015 | 16 |
| GitHub macOS x64 Intel Core i7-8700B | 37.2 | 2.4K/USD | 0.0155 | 12 |
Single thread CPU: CoreMark iterations/s. Disk and cache: composite MiB/s. Internet: composite Mbps. Value: score ÷ USD cost/vCPU/min. K means thousand, M means million. Higher is better. Cache uses each runner's best tested cache or artifact backend. Limits: maximum runner vCPU. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).
Open the full GitHub Actions runner benchmark toolA consistent numerator for every runner
The numerator is the geometric mean of save MiB/s and restore MiB/s for one backend. The payload is 512 MiB, and three verified pairs are required. The runner's highest eligible combined score is selected before dividing by its compute rate. A service with the fastest restore alone does not automatically win if saving is much slower. The table shows the raw combined score beside the value ratio so both are easy to compare.
What a higher value means
A higher cache value gives more measured combined transfer speed per unit of the quoted normalized compute rate. For example, a score of 100 at $0.002 per vCPU-minute gives 50,000 per USD. That is a benchmark ratio rather than a measured cost per restore. K and M mean thousand and million. Every provider uses a USD compute rate and shares the same ranking. Results without a complete eligible backend or a positive rate stay unscored.
Account for storage and repeated jobs
A workflow can pay for compute while a cache action compresses, transfers, verifies, or extracts its data. Many short matrix jobs can also interact with billing rounding. Cache size, retention, included storage, and repeated downloads may change costs beyond the compute rate shown here. Measure a representative set of cache hits and misses on the candidate provider. The raw cache ranking helps when transfer time is the priority regardless of this normalized price.
Measurement context
A cache value score combines two different facts: observed transfer performance and researched compute pricing. It does not include a backend's storage fees or retention policy. Some providers meter a fixed runner minute and others use consumed resources, so the ratio does not represent the complete price of moving a cache. EUR rates use the dated ECB conversion so all value scores can be compared in USD.
Verdict
Use cache value to find economical candidates with usable transfer performance. Check the backend type and absolute save and restore times before moving a workflow. A service needs to match your cache semantics as well as your price target.
More runner benchmark scenarios
Frequently asked questions
Which runner currently leads for cache value?
Do these runner rankings update automatically?
Are all operating systems and architectures included?
Does a missing result mean a runner scored zero?
Related tools
Data Transfer Calculator
Estimate transfer times for files over USB, WiFi, Ethernet, and more.
Use tool ➜Memory and Storage Throughput Visualizer
Visualize the massive speed difference between CPU cache, RAM, and storage.
Use tool ➜RAM Latency Calculator
Convert DDR3/DDR4/DDR5 timings (CL, tRCD, tRP, tRAS) into true latency in nanoseconds.
Use tool ➜