Stress / 01

CPU benchmark.

A pure-JS hash loop running in Web Workers. We scale from 1 thread to your reported core count, measuring iterations per second at each level. Perfect scaling = each thread adds 100%; the gap between ideal and observed tells you about thermal throttling, hyperthreading efficiency, and background contention.

Notes

The workload is a tight FNV-1a hash loop — branch-light, cache-friendly, and resistant to CPU-specific optimisations. Each tier runs for the duration you pick (default 5 s). Numbers are not portable across machines, but the scaling ratio is. Watch for the multi-thread curve to plateau or fall — that's the moment your CPU starts throttling.

Duration per tier
configure and start
Hardware threads
—
reported by navigator.hardwareConcurrency
Single-thread score
—
iterations / s
Multi-thread score
—
peak across tiers
Scaling efficiency
—
—
Throttle indicator
—
Frequently asked

How does the browser CPU benchmark work?

We spawn Web Workers, each running a tight FNV-1a hash loop in a separate thread. The benchmark scales from 1 worker up to your logical core count (navigator.hardwareConcurrency), measuring iterations per second at every tier. Because the workload is pure JavaScript with minimal branching and a small working set, it stays inside L1 cache and isolates raw integer throughput. The scaling curve between 1 thread and N threads tells you how efficiently your CPU schedules parallel work and whether thermal limits kick in mid-run.

Why are my multi-thread numbers lower than ideal scaling?

Perfect scaling would mean 8 threads = 8x the single-thread score, but that almost never happens. Hyperthreading siblings share execution units, so doubling logical cores rarely doubles throughput. Thermal throttling, background OS tasks, and JavaScript engine overhead also eat headroom. A laptop hitting 60-70% scaling at full thread count is healthy; under 40% suggests aggressive throttling or a thermally constrained chassis.

Are these scores comparable to Geekbench or Cinebench?

No. Native benchmarks like Geekbench use SIMD and platform-specific code paths that browser JavaScript cannot reach. Our numbers are 5-20x lower in absolute terms. What is comparable is the scaling ratio across thread counts on the same machine, and relative ordering between devices you test in the same browser. Use this tool to compare your phone to your laptop, not to publish scores.

Does this test work on phones and tablets?

Yes, Web Workers run on every modern mobile browser. Phones typically report 4-8 logical cores but throttle within 30 seconds because of passive cooling. Run the 10-second tier on a phone and watch iterations-per-second drop between runs — that is your sustained-vs-burst headroom. iPads with M-series chips often beat budget laptops in single-thread scores.

Why does my score vary between runs?

Browser JIT warm-up, background tabs, OS scheduling, and CPU temperature all introduce noise. Run the benchmark twice back-to-back: the second run is usually 5-10% faster (JIT optimized) but may be slower if the first heated the chip. Close other tabs, plug in your laptop, and prefer the median of three runs for a stable number.

What other stress tools should I try?

Pair this with the WebGL GPU benchmark to stress graphics throughput, and check the Battery discharge test to see how a sustained CPU load translates into watts. The Sensors motion tool reveals if your phone is throttling by reading skin temperature indirectly through orientation drift.