From: Jérôme Benoit Date: Sun, 14 Feb 2021 13:12:15 +0000 (+0100) Subject: Benchmark: Ensure choice algos does not init with off-by-one (#151) X-Git-Tag: v2.0.0-beta.2~28 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=472bf1f5aa50f29e44d194437964127f3bd0e3f4;p=poolifier.git Benchmark: Ensure choice algos does not init with off-by-one (#151) Co-authored-by: Shinigami92 --- diff --git a/benchmarks/choose-worker.js b/benchmarks/choose-worker.js index 38e6fc7c..fe98eff1 100644 --- a/benchmarks/choose-worker.js +++ b/benchmarks/choose-worker.js @@ -17,7 +17,15 @@ function chooseWorkerTernary () { return workers[nextWorkerIndex] } -function chooseWorkerIncrementModuloWithPreChoosing () { +function chooseWorkerTernaryWithNegation () { + nextWorkerIndex = + !nextWorkerIndex || workers.length - 1 === nextWorkerIndex + ? 0 + : nextWorkerIndex + 1 + return workers[nextWorkerIndex] +} + +function chooseWorkerTernaryWithPreChoosing () { const chosenWorker = workers[nextWorkerIndex] nextWorkerIndex = workers.length - 1 === nextWorkerIndex ? 0 : nextWorkerIndex + 1 @@ -36,9 +44,13 @@ suite nextWorkerIndex = 0 chooseWorkerTernary() }) - .add('Increment+Modulo with PreChoosing', function () { + .add('Ternary with negation', function () { + nextWorkerIndex = 0 + chooseWorkerTernaryWithNegation() + }) + .add('Ternary with PreChoosing', function () { nextWorkerIndex = 0 - chooseWorkerIncrementModuloWithPreChoosing() + chooseWorkerTernaryWithPreChoosing() }) .add('Increment+Modulo', function () { nextWorkerIndex = 0