← back to 9bench

Methodology

Every formula. Every score bracket. No hidden weights.

Why 9bench exists

UserBenchmark was banned by r/hardware and r/pcmasterrace for documented bias toward Intel single-core performance. Geekbench, Cinebench, 3DMark, and PassMark all require 500MB-8GB downloads and admin rights — unusable in corporate networks, schools, and on shared computers.

9bench is a deliberate, honest, browser-only alternative. The entire test runs in your browser via WebGPU, WebAssembly, Web Workers, and Web Crypto APIs. No download. No account. No data leaves your browser unless you explicitly submit your score.

The 4 measurements

1. GPU Compute (WebGPU)

A 1024×1024 floating-point matrix multiplication is executed 5 times via a WebGPU compute shader. Each multiplication = 2 × 1024³ ≈ 2.1 billion floating-point operations. We compute total time and divide to get GFLOPS (giga-floating-point-operations-per-second).

Formula: GFLOPS = (2 × N³ × iterations) / (duration_seconds × 1e9)

Why this benchmark: matrix multiplication is the foundational GPU compute operation, used in every ML inference, every 3D engine, every neural net. WebGPU compute shaders perform within 5-15% of native performance on the same hardware.

2. CPU Single-Core (SHA-256 hash chain)

200,000 SHA-256 hashes are computed in a single chain (each hash's output is the input for the next). The hashes-per-second rate is recorded.

Why SHA-256: it's CPU-bound, deterministic, parallelizable, real-world relevant (TLS, blockchain, file integrity), and platform-independent. Modern CPUs accelerate it via SHA-NI extensions on x86 and native instructions on ARM, so the test reflects real-world performance, not pure JIT speed.

3. CPU Multi-Core (parallel SHA-256 via Web Workers)

The same SHA-256 chain is spawned in N workers simultaneously, where N = navigator.hardwareConcurrency. Each worker runs 500,000 iterations to amortize Worker initialization overhead.

Important caveat: Browser Web APIs limit true parallelism. Web Crypto's crypto.subtle.digest may serialize internally for security. Web Workers compete for a shared thread pool. Real-world multi-core efficiency in browser is typically 30-60% of what native tools (Cinebench, Geekbench native) measure. 9bench scores reflect browser capability.

4. RAM Bandwidth + Latency (TypedArray patterns)

A 256MB Float32Array working set (large enough to exceed L3 cache on most CPUs) is repeatedly:

  • Sequential read: sum every 4th element across full array, 5 iterations
  • Sequential write: fill with constant value, 5 iterations
  • Sequential copy: dst.set(src) 5 iterations
  • Random latency: 1,000,000 random index reads (PRNG-driven walk through full set)

Output: GB/s read, GB/s write, ns random-access latency.

Caveat: Browser RAM bandwidth measurement is fundamentally limited compared to native tools. V8/JIT optimization, OS paging, and Float32Array vectorization variance can produce 15-50% variance vs. native memcpy benchmarks. The measurement is most useful for relative comparison between machines, not absolute peak bandwidth.

Score formulas

Each component score is calculated to produce roughly comparable numbers across components, then combined via geometric mean (which prevents one weak component from being masked by strong ones):

scoreGpu       = round(GFLOPS × 3)           // 500 GFLOPS → 1500
scoreCpuSingle = round(hashes_per_sec / 300) // 400K h/s → 1333
scoreCpuMulti  = round(hashes_per_sec / 600) // 1.2M h/s → 2000
scoreRam       = round((readGBs + writeGBs)/2 × 60) // 8 GB/s avg → 480

overall = exp(0.35×ln(scoreGpu) + 0.45×ln(scoreCpuMulti) + 0.20×ln(scoreRam))

The weights (35% GPU, 45% CPU multi, 20% RAM) reflect modern workload importance. Single-core CPU is shown but excluded from the composite to avoid double-counting CPU.

Score brackets (calibrated to 2026 hardware)

BracketRangeTypical hardware
🏆 Elite tier4000+Apple M5 Max, Ryzen 9 9950X3D + RTX 5090
✓ High-end2500-4000Apple M4 Pro, Ryzen 9 7950X + RTX 4080
◯ Strong mainstream1700-2500Apple M3 Pro, Ryzen 7 7800X3D + RTX 4070
~ Mid-range standard1000-1700Ryzen 7 5800X, mid-tier 2024 laptops
⚠ Mainstream / older500-1000Older laptops, integrated GPUs
🚨 Office / Chromebook<500Chromebook, older office laptop

Why these aren't Geekbench numbers

9bench scores are not directly comparable to Geekbench, Cinebench, or any native benchmark. Browser-API performance is universally lower than native:

  • WebGPU adds 5-15% overhead vs native Metal/Vulkan/DirectX
  • Web Workers don't achieve full multi-core scaling due to browser sandboxing
  • JavaScript memory operations don't always vectorize as efficiently as native C/C++

What 9bench is good for:

  • Relative comparison between two browsers/machines on the same web platform
  • Quick triage — is this device fast or slow without installing anything
  • Browser-cap testing — what can a website actually expect from this device

What 9bench is not good for:

  • Replacing Geekbench/Cinebench for absolute peak measurement
  • Hardcore overclocking benchmarking
  • Comparing to native-tool scores from review sites

Privacy

The benchmark itself runs entirely in your browser. No data is sent to any server during the test. When you finish, you can optionally submit your score to the global ranking — at which point we store: scores, GPU adapter name (if browser exposes it), CPU core count, hash rates, RAM bandwidth numbers, anonymous user-agent fragment. We do not store your IP, exact location, or any identifying information. Reactions are stored anonymously linked to the result ID, not to you.

Result URLs (9bench.com/r/<id>) are not indexed by search engines (noindex). They're meant for sharing with people you choose, not for global discovery.

Open source

Source code at github.com/atillakuruk/9bench (link active once repo is published). MIT license. Pull requests welcome — especially for additional benchmark methodologies (disk-speed, network-latency, AI-inference-speed, video-encode-speed) that are practical to run in-browser.

Built by

Atilla Kürük, also creator of Toololis (668 honest browser tools, also Truth Series).

Questions, suggestions, calibration feedback: open an issue on GitHub or contact via Toololis.