TechCompare LogoTechCompare

BuildPulse runner benchmarks, hardware, and pricing

BuildPulse has two Linux configurations in the supplied results: x64 and ARM64, both requested at two vCPUs. The CPU test runs one thread, not one thread per available vCPU. The x64 guest names AMD EPYC 9R45. The ARM guest names only its architecture, while BuildPulse describes that runner family as AWS Graviton without confirming a generation in the cited documentation.

By TechCompare · Updated

Measured configurations
2
CPU execution threads
1
Five accepted samples per runner

How the ARM disk score is calculated

The updated ARM result supplies sequential read and write MiB/s plus random read and write IOPS from three fully verified samples. Random IOPS are divided by 256 for the 4 KiB operation size, then all four components enter the fixed geometric mean. The table shows a normal disk score. Hover or open details to inspect the medians and the three completed, five attempted, and five requested samples.

Use the published rate for the tested tier

BuildPulse lists $0.004 per minute for two-vCPU x64 and $0.0025 for two-vCPU ARM. Those normalize to $0.002 and $0.00125 per vCPU-minute. Both standard families list sizes up to 64 vCPUs. The maximum describes an available product tier. This dataset doesn't measure scaling from two to 64 vCPUs, real build duration, or the cost of finishing a repository's test suite.

Calculator

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.
RunnerCPUSingle threadCPU valueDiskCacheInternetCost/vCPU/minUSDMax vCPU
BuildPulse Linux x64

AMD EPYC 9R45

43,146
21.6M/USD
28.2
58
159.1
0.00264
BuildPulse Linux arm64

AWS Graviton (gen undisclosed)

33,116
26.5M/USD
20.1
52.2
155.6
0.001364

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

Measurement context

The updated BuildPulse ARM disk report contains medians from three completed samples out of five requested. Those verified measurements are included in the disk score and disk value ranking. The details retain the completed, attempted, and requested counts alongside each throughput measurement.

Verdict

Read CPU, disk, and cache results together when choosing a runner for a file-heavy workflow. The disk score combines sequential and random I/O, so inspect the component closest to your job. The quoted compute rate adds price context without predicting a complete build's cost.

More runner benchmark scenarios

Frequently asked questions

Are these independent GitHub Actions runner benchmarks?
TechCompare publishes measurements from its own runner benchmark suite. The results come from the supplied published reports, while provider documentation supplies hardware mappings, prices, and available sizes. Scores from provider marketing pages aren't used as test results.
Does a CoreMark score predict my build time?
No. CoreMark is a CPU microbenchmark running one execution thread. A full build also depends on parallelism, memory, disk, dependencies, cache behavior, and queue time. This snapshot doesn't measure complete application builds or queue delays.
How are disk, cache, and internet scores calculated?
Each score is a geometric mean of that runner's own measurements. Disk combines sequential read/write MiB/s with random read/write IOPS converted to MiB/s using the 4 KiB operation size. Cache combines save and restore MiB/s from one backend. By default, each runner uses its highest verified score across tested cache and artifact backends. Hover or open details to see the backend, or select a specific backend type. Internet combines available download and upload Mbps, or uses the single recorded direction. Protocol 7 reports speeds from actual payload bytes and elapsed time, including transfers that reach the time limit. Older timeout records use recorded bytes divided by the nominal limit. These fixed formulas have no ranking reference or upper score limit, so adding a faster runner doesn't change existing scores. CPU keeps its measured CoreMark iterations per second.
How is price per minute per vCPU calculated?
A fixed runner's quoted minute rate is divided by its billed vCPU count. Prices are shown in USD and are list or overage rates before allowances and extras. RunJob publishes EUR consumed CPU rates, which are converted using the dated ECB reference rate shown on the page. Its original rate stays in the details, and memory charges are additional. GitHub uses private standard rates, and Namespace shows overage with prepaid equivalents.
What does CPU value mean?
CPU value is the measured single thread CoreMark score divided by the USD cost per vCPU per minute. More billed vCPUs don't multiply the measured score. EUR compute rates are converted before calculating value, so every provider is in one USD ranking. K means thousand and M means million. Optional disk, cache, and internet value columns use the same score divided by rate formula. These ratios don't measure full build performance or predict the final bill.
Why is an exact CPU model sometimes missing?
Some virtual machines expose only AMD EPYC or aarch64. The table uses a provider mapping where documentation identifies a family, labels that evidence, and leaves undisclosed model numbers unconfirmed. Similar benchmark scores aren't enough to identify a processor.
Are missing tests counted as zero?
No. Internet transfers with a nonzero recorded byte count can supply a speed even if they reach the time limit. A blocked request or a timeout with no recorded bytes stays unscored. Disk uses verified sample medians with all four throughput components. The updated BuildPulse ARM disk result is included using its three completed samples, with the original counts in the details. Cache requires all three verified save and restore pairs. The table shows a dash when no score is available. Hover or open the row details to inspect the measurements.