CPU benchmark online
Test your browser's computational performance.
System info
Quick presets
About this benchmark
Single-thread tests
Prime sieve, matrix multiply, string operations, and array sort test raw single-core JavaScript performance. Higher scores indicate faster execution.
Multi-thread test
Distributes prime counting across all available CPU cores using Web Workers. Measures parallel speedup and efficiency vs single-threaded baseline.
Crypto throughput
Measures SHA-256 hashing throughput using the Web Crypto API. This tests both CPU and browser crypto implementation speed.
Scoring
Scores are relative and designed for comparing across devices and browsers. Close other tabs and apps for the most consistent results.
This CPU benchmark runs six workloads in your browser and scores each on how long it took. Prime sieve counts every prime below 2,000,000 with a Uint8Array sieve. Matrix multiply does a 512 by 512 Float64 product in the cache-friendly i-k-j order. String operations build a 100,000-character string and run 50,000 JSON encode and decode cycles. Array sort orders 2,000,000 doubles. The multi-thread test first times one Web Worker on a trial-division prime count, then splits the same range across one worker per logical core and reports the parallel efficiency. Crypto hashes a 1 KB block with SHA-256 through Web Crypto for three seconds.
Key facts about CPU benchmark online
| Prime sieve | sieve of Eratosthenes over a Uint8Array up to 2,000,000, single thread |
|---|---|
| Matrix multiply | 512 x 512 Float64Array product, i-k-j loop order for cache locality |
| String operations | 100,000 character concatenations plus 50,000 JSON.stringify and JSON.parse round trips |
| Array sort | 2,000,000 random Float64 values sorted with a numeric comparator |
| Multi-thread test | one Web Worker per navigator.hardwareConcurrency core, counting primes by trial division |
| Parallel efficiency | single-worker time divided by multi-worker time, divided by thread count, as a percentage |
| Crypto test | crypto.subtle.digest SHA-256 over a 1 KB block for three seconds, reported in MB/s |
| Score formula | a fixed weight divided by elapsed milliseconds, so higher is faster and scores are relative |
| Presets | Quick runs everything, plus Single core, Multi core and Memory intensive focus runs |
| Overall rating | above 3000 Outstanding, 2000 Excellent, 1000 Good, 500 Average, 200 Below average |
| Worker delivery | the worker source is a Blob object URL, so no extra file is fetched |
| History | previous runs kept for comparison while the page is open |
What happens to your file
Every workload runs as JavaScript in this tab and in Web Workers spawned from a Blob URL created in the same tab. No code is downloaded to run the test, no result is uploaded, and no identifier is stored — the numbers exist in memory while the page is open and disappear when you reload. The only hardware detail read is navigator.hardwareConcurrency, the logical core count, which decides how many workers to spawn. The workers are terminated and their object URL revoked as soon as the multi-thread test finishes, so nothing keeps running in the background afterwards.
About this tool
- 1
Close other work first
Other tabs, video calls and background sync all compete for the same cores. Close what you can and let the machine idle for a few seconds before starting, or the scores measure your workload rather than your CPU.
- 2
Pick a preset
Quick runs all six tests. Single core focus runs only the prime sieve, Multi core focus runs only the Web Worker test, and Memory intensive runs only the large array sort.
- 3
Let it finish without switching tabs
Browsers throttle background tabs. Leaving the page mid-run does not just pause the test, it distorts the timings that are already being measured.
- 4
Read the per-test scores
Each test has its own bar. A machine can be strong on the sieve and weak on the sort, which tells you more about memory bandwidth and cache than a single combined number would.
- 5
Check the parallel efficiency
The multi-thread test reports a percentage. Near 100 per cent means the cores scale cleanly; well below that usually means hyperthreading, thermal limits or background load.
- 6
Watch the crypto throughput
SHA-256 through Web Crypto is normally hardware accelerated, so the MB/s figure reflects the CPU's crypto instructions rather than JavaScript execution speed.
- 7
Run it twice
The first run often warms caches and lets the JIT compile the hot loops. The second run is usually the more representative one, and a third that drops sharply points at thermal throttling.
| Browser support | any browser with Web Workers and Web Crypto — Chrome, Edge, Firefox, Safari, Opera |
|---|---|
| Secure context | crypto.subtle requires HTTPS, which this page uses; without it the crypto test cannot run |
| Core count source | navigator.hardwareConcurrency, which reports logical threads and is capped by some browsers |
| Memory required | roughly 40 MB peak for the sort and matrix tests; low-memory phones may struggle |
| Run time | about 10 to 30 seconds for the full set, depending on the machine |
| Page responsiveness | the single-thread tests block the main thread, so the tab will not respond while they run |
| Cross-browser comparison | valid only within one browser — engines differ enough to change scores on identical hardware |
| Account or install | none — no signup, no download |
- Scores here measure JavaScript execution, not raw silicon. The same laptop can score meaningfully differently in Chrome, Firefox and Safari because their engines optimise these loops differently.
- Compare like with like: same browser, same power profile, same battery state. A laptop on battery saver can lose half its score.
- Parallel efficiency well under 60 per cent on a machine with many cores usually means those cores are hyperthreads sharing execution units, not full cores.
- A score that falls steadily over repeated runs is thermal throttling. Let the machine cool and retest to confirm.
- The array sort leans on memory bandwidth as much as the CPU, so a machine with slow or single-channel RAM will lag there while doing fine on the sieve.
- hardwareConcurrency is a browser-reported number; some browsers cap it for privacy, so a 16-thread machine may spawn fewer workers than you expect.
- Do not compare these scores with desktop benchmarks such as Cinebench or Geekbench. Different workloads, different units, no conversion.
- The tab will freeze during the single-thread tests. That is expected: those loops run on the main thread by design.
- Prime sieve to 2,000,000 on a typed array
- 512 x 512 Float64 matrix multiplication
- String concatenation plus JSON encode and decode churn
- Two-million-element Float64 sort
- Web Worker scaling test with parallel efficiency
- SHA-256 throughput in MB/s via Web Crypto
- Four presets and a per-test score chart
- Run history for comparison within a session
- Comparing two laptops quickly without installing benchmark software on either.
- Checking how much performance a machine loses on battery saver.
- Seeing whether extra cores actually help, by reading the parallel efficiency figure.
- Testing whether a browser update changed JavaScript performance on the same hardware.
- Estimating how a low-end device will cope with a compute-heavy web application.
- Spotting thermal throttling by running the same preset three times in a row.
Related tools
View allPart of Hardware testers that run in your browser
Works well with this5
More hardware testers10
More in Gaming11
Related categories2
Updated