TechCompare LogoTechCompare

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

Scored configurations
26 / 26
Every tested platform included
Ranking
Score / compute rate
All compute rates in USD

Current leaders

  1. #1

    Latchkey Linux x64

    AMD EPYC 7R13

    134.6K per USD

    $0.00125/vCPU/min

  2. #2

    Ubicloud Linux arm64

    Ampere Altra Q80-30

    81.2K per USD

    $0.000625/vCPU/min

  3. #3

    Blacksmith Linux x64

    AMD EPYC (model hidden)

    77.2K per USD

    $0.002/vCPU/min

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

GitHub Actions runner CPU models, single thread CPU scores, disk, cache, and internet scores, and value per USD compute cost. Missing tests have no score.
RunnerCacheCache valueCost/vCPU/minUSDMax vCPU
Latchkey Linux x64

AMD EPYC 7R13

168.2
134.6K/USD
0.001316
Ubicloud Linux arm64

Ampere Altra Q80-30

50.8
81.2K/USD
0.000630
Blacksmith Linux x64

AMD EPYC (model hidden)

154.4
77.2K/USD
0.00232
Blacksmith Linux arm64

ARM64 (model undisclosed)

88.2
70.6K/USD
0.001332
Avrea Linux x64

AMD EPYC 4585PX 16-Core

103.8
51.9K/USD
0.00232
StarSling Linux x64

AMD EPYC (model hidden)

101
50.5K/USD
0.00264
Ubicloud Linux x64

AMD Ryzen 9 7950X3D 16-Core

48.5
48.5K/USD
0.00130
BuildPulse Linux arm64

AWS Graviton (gen undisclosed)

52.2
41.8K/USD
0.001364
RunJob Linux x64

AMD EPYC 7502 32-Core

53.5
39.8K/USD
0.001348
Avrea Linux arm64

Apple M5 Max

220.8
36.8K/USD
0.00616
GitHub Linux x64

AMD EPYC 9V74 80-Core

100.5
33.5K/USD
0.00396
Namespace Linux x64

AMD EPYC (model hidden)

49.6
33K/USD
0.001564
GitHub Linux arm64

Microsoft Cobalt 100

82.1
32.9K/USD
0.002564
GitHub Linux x86

AMD EPYC 7763 64-Core

96.6
32.2K/USD
0.00396
BuildPulse Linux x64

AMD EPYC 9R45

58
29K/USD
0.00264
Avrea macOS arm64

Apple M5 Max

251.6
25.2K/USD
0.0116
Namespace Linux arm64

AmpereOne family (SKU undisclosed)

34.7
23.1K/USD
0.001532
Blacksmith macOS arm64

Apple M4 Pro

262.9
19.7K/USD
0.013312
GitHub macOS arm64

Apple M2 Pro

145.8
7.1K/USD
0.02075
Blacksmith Windows x64

AMD EPYC 4565P 16-Core

24.8
6.2K/USD
0.00432
Avrea Windows x64

AMD EPYC 4585PX 16-Core

17.6
4.4K/USD
0.00416
GitHub Windows x64

AMD EPYC 7763 64-Core

18.9
3.8K/USD
0.00596
GitHub Windows x86

AMD EPYC 7763 64-Core

17.5
3.5K/USD
0.00596
GitHub Windows arm64

Cobalt 100

13.8
2.8K/USD
0.00564
Namespace macOS arm64

Apple M4 Pro

39.6
2.6K/USD
0.01516
GitHub macOS x64

Intel Core i7-8700B

37.2
2.4K/USD
0.015512

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 tool

A 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?
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.
Do these runner rankings update automatically?
Yes. The rankings, leaders, counts, table, and structured data are calculated from the shared benchmark dataset, researched pricing, and saved exchange rate during each site build. The prebuild refreshes the ECB exchange rate and keeps the dated saved rate if the fetch fails. Importing new results or updating prices changes the next build. They do not fetch live measurements or provider prices while you browse.
Are all operating systems and architectures included?
Yes. These pages include every imported Linux, Windows, and macOS configuration, including x64, ARM64, and 32-bit x86 binaries. The full tool lets you narrow the platform or provider. Operating system, compiler, and affinity differences remain part of each measured result.
Does a missing result mean a runner scored zero?
No. Missing or unusable measurements stay unscored and appear after scored results. Value also requires a positive quoted cost per vCPU per minute. A missing test does not establish that a runner is slow.