Performance
Read hashrate without confusing it with device utilization.
Calculate a rate
Hashrate divides completed attempts by elapsed time. This example calculates a rate from two illustrative measurements. It does not benchmark the device or read the live desk.
function hashesPerSecond(attempts, elapsedMs) {
if (!Number.isFinite(attempts) || attempts < 0 ||
!Number.isFinite(elapsedMs) || elapsedMs <= 0) {
throw new RangeError('Use non-negative attempts and positive elapsed time.');
}
return attempts / (elapsedMs / 1000);
}
console.log(hashesPerSecond(500000, 2500)); // 200000
console.log(hashesPerSecond(0, 1000)); // 0Power is a setting
The desk inserts pauses between batches. Increasing Power changes the work/rest balance; it does not promise a matching percentage of GPU utilization. Lower Power if you want the browser to leave more room for other work.
Compare like for like
Compare the same engine, Power setting, browser, and device state. Let startup finish before reading the rate. A CPU result and a GPU result describe different execution paths.
A rate is not a countdown
Hashrate measures work, not how soon a valid candidate must appear. Another application using the graphics device, device sleep, and background tabs can change the observed rate.