Skip to content

Tests CPU Geekbench

Mason Rowe edited this page Oct 31, 2026 · 1 revision

Tests: CPU (Geekbench)

In short

YABS runs Primate Labs' Geekbench — a licensed, closed-source CPU benchmark — and reports a Single-Core and a Multi-Core score plus a link to the public result page. Geekbench 6 is the default; -4, -5, -7, -9 select other versions. Because results are uploaded automatically, they are publicly visible on browser.geekbench.com.

What Geekbench measures

Geekbench is a synthetic CPU benchmark: it runs a suite of short real-world-flavoured workloads — file compression, image processing, machine-learning inference, cryptography, text processing, compiling, and similar tasks — and aggregates them into two scores:

  • Single-Core — how fast one thread runs. Proxy for per-request latency in web serving, PHP, game-server ticks, single-query database work, and anything serial.
  • Multi-Core — all cores working together. On a VPS it mostly reveals how much real CPU you get and whether it is contended — a 4-vCPU plan on an oversold node produces a multi-core score well short of 4× its single-core.

Scores are calibrated against fixed reference hardware per version, so within a version score ≈ relative speed (double the score ≈ double the work rate) — but scores are never comparable across versions (a GB5 1200 and a GB6 1200 are different things). What counts as a good score, and the red flags to watch for, are covered in Interpreting Results.

A finished section looks like:

Geekbench 6 Benchmark Test:
---------------------------------
Test            | Value                         
                |                               
Single Core     | 1420                          
Multi Core      | 4410                          
Full Test       | https://browser.geekbench.com/v6/cpu/12345678

The Full Test link opens the complete public result — per-workload scores, full system info, and comparison charts.

Versions, downloads, and platform support

Geekbench is downloaded as a tarball from cdn.geekbench.com and unpacked into the run directory. Pinned versions and URLs (yabs.sh v2026-10-31):

Version Pin x86_64 tarball ARM tarball RISC-V tarball
Geekbench 4 4.4.4 Geekbench-4.4.4-Linux.tar.gz — (not available) — (not available)
Geekbench 5 5.5.1 Geekbench-5.5.1-Linux.tar.gz Geekbench-5.5.1-LinuxARMPreview.tar.gz Geekbench-5.5.1-LinuxRISCVPreview.tar.gz
Geekbench 6 (default) 6.7.2 Geekbench-6.7.2-Linux.tar.gz Geekbench-6.7.2-LinuxARMPreview.tar.gz Geekbench-6.7.2-LinuxRISCVPreview.tar.gz
Geekbench 7 7.1.0 Geekbench-7.1.0-Linux.tar.gz Geekbench-7.1.0-LinuxARMPreview.tar.gz Geekbench-7.1.0-LinuxRISCVPreview.tar.gz

Notes:

  • ARM and RISC-V builds are Primate Labs "Preview" releases; RISC-V previews exist for 5.5.1, 6.7.2, and 7.1.0 (all verified in Oct 2026). GB4 was never released for non-x86 architectures — trying it prints ARM/RISC-V architectures not supported by Geekbench 4, use Geekbench 5 or 6.
  • GB5/6/7 are 64-bit only. On 32-bit x86 the intended behaviour is to skip them with Geekbench N cannot run on 32-bit architectures. Re-run with -4 flag to use Geekbench 4, which can support 32-bit architectures. Skipping Geekbench N. — but in the current code that message is unreachable (the guard tests $GEEKBENCH_4 == *False*, and the variable is only ever unset or True). What actually happens on 32-bit with default flags: GB6 is downloaded, fails to start, and nothing is printed, because the generic failure message is also skipped for x86. If -4 was passed together with a 5/6/7 flag, the shorter Geekbench N cannot run on 32-bit architectures. Skipping test. does print. Practical rule: on 32-bit x86, run -4.
  • cdn.geekbench.com is IPv4-only. An IPv6-only host cannot download Geekbench at all (the script prints a specific message, below).
  • tar is required to unpack the tarball unless a matching geekbenchN binary is already on PATH (check added Oct 2026, #99 — e.g. AlmaLinux 9 minimal ships without tar).
  • If geekbench4/geekbench5/geekbench6/geekbench7 is already installed, YABS runs the local copy instead of downloading (added Jul 2023, #68). Handy on IPv6-only hosts: get the tarball onto the box by other means, install it, and YABS picks it up.
  • GB4 is the odd one out: ancient, x86-only, and the only version that runs on 32-bit systems — its tarball ships a separate geekbench_x86_32 binary that YABS invokes on x86.

Version history in YABS

When Change
Oct 2019 Geekbench 4 added (5 days after the first commit) — the original CPU test
Feb 2020 Geekbench 5 becomes default; -4 keeps GB4
Jun 2020 -9 ("4+5") runs both GB4 and GB5
Feb 2023 Geekbench 6 becomes default
Jul 2026 Geekbench 7 support added (-7, #129), days after Primate Labs' 2026-07-23 release; GB6 stays the default
Oct 2026 GB 6.7.2 / 7.1.0 pins; RISC-V Preview builds added

What a run does

flowchart TD
    A["launch_geekbench N"] --> B{"version/arch supported?"}
    B -->|no| Z[print skip message]
    B -->|yes| C{"geekbenchN on PATH?"}
    C -->|yes| D[use local binary]
    C -->|no| E["download tarball from cdn.geekbench.com,<br/>tar xz --strip-components=1"]
    E --> F{"./geekbench.license exists?"}
    D --> F
    F -->|yes| G["geekbenchN --unlock (license key)"]
    F -->|no| H
    G --> H["geekbenchN --upload"]
    H --> I{"output contains a browser.geekbench URL?"}
    I -->|no| J[print cause-specific failure message]
    I -->|yes| K[results URL = first https://browser line,<br/>claim URL = last line]
    K --> L{"scores printed to stdout? (GB6/7 summary)"}
    L -->|yes| M[parse Single-Core / Multi-Core Score lines]
    L -->|no| N[sleep 10, scrape public results page]
    M --> O[print table + JSON;<br/>append claim URL to ./geekbench_claim.url]
    N --> O
Loading
  • The binary runs with --upload, which runs the benchmark and posts the result to Geekbench's public database.
  • GB6/GB7 print scores to stdout in a "Benchmark Summary" section; those are parsed directly. For GB4/GB5 (or if stdout parsing found nothing), YABS sleeps 10 s for the result to publish, then scrapes the public results page — span class='score' markup for GB4, div class='score' for the rest. (Primate Labs only started printing scores to stdout in late GB6 releases, which is why the scrape path exists at all; it's also the fallback if a build stops printing them.)
  • The two https://browser lines in Geekbench's output are positional: the first is the results URL, the last is the claim URL. If scores can't be parsed from either stdout or the page, the JSON still records the run — with "single": null, "multi": null (since May 2026, #127; before that the fields were emitted empty, producing invalid JSON).
  • The claim URL (the last https://browser line in the output) is appended to ./geekbench_claim.url in your current directory. Visit it to attach the result to a Geekbench account.
  • A ./geekbench.license file (email@domain.com KEY-...) is passed to --unlock before the run — for users with a paid Geekbench license.

Score baselines

Each version is normalised so a specific reference machine scores a round number (source: Primate Labs documentation):

Version Baseline score Reference system
Geekbench 4 4000 Intel Core i7-6600U (Microsoft Surface Book)
Geekbench 5 1000 Intel Core i3-8100 (Dell Precision 3430)
Geekbench 6 2500 Intel Core i7-12700 (Dell Precision 3660)
Geekbench 7 2500 AMD Ryzen 7 7700 (Lenovo Legion)

Geekbench 6 changed the multi-core methodology to a "shared task" model, and GB7 redesigned it again to better reflect real applications — two more reasons cross-version comparisons are meaningless.

What's inside a Geekbench result

The Full Test URL YABS prints is the real payload. On browser.geekbench.com the result page contains:

  • The aggregate Single-Core and Multi-Core scores (the numbers YABS scrapes when stdout doesn't provide them).
  • Per-workload scores — the individual subtests (compression, image processing, ML, text, compilation, and similar) broken out separately. This is where you can tell which kind of work a CPU is good at — useful for spotting instruction-set or cache peculiarities that the aggregate hides.
  • A system information block — CPU model, core/thread counts, memory size, motherboard/virtualization info as reported by the OS.
  • Comparison plumbing — the page sits inside the Geekbench Browser database, so the same scores can be charted against every other result for that CPU.

The claim URL (last https://browser line, saved to geekbench_claim.url) is the same result but with an ownership link — visit it logged-in to attach the benchmark to your Geekbench account. The file is appended to on each run, so it accumulates one URL per version per run.

Runtime profile

Geekbench dominates total YABS runtime: a couple of minutes on a fast modern CPU, and substantially longer on weak or contended ones (older Atoms, heavily oversold shared cores, emulation — a TCG-emulated guest can take hours). It also needs real memory headroom — comfortably more than 1 GiB for GB5/6/7 — which is why ≤1 GiB hosts fail outright and why the failure message suggests swap or GB4. Disk footprint is transient (the tarball extracts into the run temp dir and is deleted with it). CPU is pegged for the duration — avoid running it on a production box where minutes of full load matter.

Memory requirements and failures

Geekbench 5/6/7 need appreciably more than 1 GiB of RAM. On a host with ≤ 1 GiB, failure prints:

Geekbench test failed and low memory was detected. Add at least 1GB of SWAP or use GB4 instead (higher compatibility with low memory systems).

Adding swap (or running -4) is the standard fix on 512 MiB–1 GiB VPSes.

Failure messages and what they mean

Message Cause Fix
CentOS 7 and Geekbench have known issues relating to glibc (see issue #71 for details) CentOS 7's glibc 2.17 predates Geekbench 6's requirement of glibc ≥ 2.27. #71 Use -4 or -5, or a newer distro.
Geekbench releases can only be downloaded over IPv4. FTP the Geekbench files and run manually. No IPv4 connectivity; cdn.geekbench.com is IPv4-only. Copy the tarball over yourself and run geekbenchN directly (a local geekbenchN on PATH is used automatically on re-runs).
Geekbench test failed and low memory was detected. Add at least 1GB of SWAP or use GB4 instead (higher compatibility with low memory systems). ≤ 1 GiB RAM, version ≥ 5. Add swap, or -4.
Geekbench N test failed. Run manually to determine cause. Anything else — download failure, binary incompatibility, crashed run. Run geekbenchN interactively for the real error.
Geekbench N requires tar to extract the download, but tar was not found. / Install tar (e.g. 'dnf install tar' or 'apt install tar') and re-run. Skipping Geekbench N. No tar, no local binary. apt/dnf install tar.
ARM/RISC-V architectures not supported by Geekbench 4, use Geekbench 5 or 6. -4 on ARM/RISC-V. Use -5, -6, or -7.
Geekbench N cannot run on 32-bit architectures. Skipping test. -5/-6/-7 together with -4 on 32-bit x86 (without -4 the attempt fails silently; see above). Use -4 alone.

(On 32-bit x86 specifically, a generic Geekbench failure prints nothing — the fallback message branch is skipped for x86. Combined with the unreachable "Re-run with -4" guard described above, a 32-bit host running with default flags simply shows no Geekbench section.)

Privacy note

--upload publishes the result — including the hardware summary and scores — to browser.geekbench.com, publicly. Anyone can browse/search it. If you don't want your server in the public database, run with -g (skip Geekbench); there is no flag to run Geekbench without uploading.

Flag combinations, concretely

Flags Versions that run
(none) 6
-4 4
-5 5
-7 7
-9 4 + 5
-45 4 + 5 (same as -9)
-46 4 + 6
-96 4 + 5 + 6
-76 6 + 7
-6 -9 4 + 5 — -9 comes last and unsets the 6 that -6 enabled
-g none

Regardless of flag order, versions execute in sequence 4 → 5 → 6 → 7, each printing its own block and appending its own claim URL.

Choosing a version

The default (GB6) is right for almost everyone. Reasons to pick otherwise:

  • -4: 32-bit x86 hosts (the only GB that runs there), very low-memory boxes (≤1 GiB — GB4 tolerates it best), or old-glibc distros like CentOS 7.
  • -5: when you need continuity with older results — GB5 scores aren't comparable to GB6/7, so a fleet that was always measured in GB5 stays in GB5. Also a fallback for glibc-limited hosts where GB6/7 fail.
  • -7: newest scoring model; useful for comparing against current Geekbench Browser charts. Note GB6 remains the YABS default even though GB7 exists.
  • -9: GB4+GB5 together — mostly a legacy/historical-comparison convenience.
  • Multiple versions (-96, -76) run sequentially; each adds its own result block and JSON entry.

Also worth knowing: the Geekbench tarball (on the order of 100–200 MB) is the largest single file the run downloads; on very slow links the download can take longer than the benchmark itself. (The iperf3 tests move far more data overall.)

If you need more than YABS gives you

YABS runs a fixed, one-shot geekbenchN --upload. For deeper analysis:

  • Run the downloaded (or installed) geekbenchN binary directly — it prints per-workload scores and accepts --no-upload for private runs (offline results require a Geekbench Pro license).
  • The public result page breaks the aggregate into individual workload scores, which helps distinguish "slow CPU" from "contended CPU" patterns.
  • A Geekbench result is one moment in time — contention on shared hosts changes hour to hour. Repeat runs at different times before drawing conclusions; see Benchmarks Are Snapshots.

See also

Clone this wiki locally