mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 20:42:59 +01:00
bench: Fix subtle counting issue when rescaling iteration count
Make sure that the count is a zero modulo the new mask before scaling, otherwise the next time until a measure triggers will take only 1/2 as long as accounted for. This caused the 'min time' to be potentially off by as much as 100%.
This commit is contained in:
parent
e4dbeb9499
commit
e0a9cb25b0
@ -64,8 +64,11 @@ bool State::KeepRunning()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (elapsed*16 < maxElapsed) {
|
if (elapsed*16 < maxElapsed) {
|
||||||
countMask = ((countMask<<1)|1) & ((1LL<<60)-1);
|
uint64_t newCountMask = ((countMask<<1)|1) & ((1LL<<60)-1);
|
||||||
countMaskInv = 1./(countMask+1);
|
if ((count & newCountMask)==0) {
|
||||||
|
countMask = newCountMask;
|
||||||
|
countMaskInv = 1./(countMask+1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastTime = now;
|
lastTime = now;
|
||||||
|
Loading…
Reference in New Issue
Block a user