X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmarks%2Fbenchmarks-utils.mjs;h=79971825e20e9e66c394b7b229eb6b4b5d852eaf;hb=9eae3c69ca545dc5e4807e2ae059f850e2bd6f9f;hp=2d553580c42e29491d8dc7efbfa4750482f1dc15;hpb=297d705dc3cac3e998e4ce25f1e7ee76c3b94be6;p=poolifier.git diff --git a/benchmarks/benchmarks-utils.mjs b/benchmarks/benchmarks-utils.mjs index 2d553580..79971825 100644 --- a/benchmarks/benchmarks-utils.mjs +++ b/benchmarks/benchmarks-utils.mjs @@ -7,6 +7,7 @@ import { DynamicThreadPool, FixedClusterPool, FixedThreadPool, + Measurements, PoolTypes, WorkerChoiceStrategies, WorkerTypes @@ -93,24 +94,59 @@ export const runPoolifierPoolBenchmark = async ( WorkerChoiceStrategies )) { for (const enableTasksQueue of [false, true]) { - suite.add( - `${name}|${workerChoiceStrategy}|${ - enableTasksQueue ? 'with' : 'without' - } tasks queue`, - async () => { - pool.setWorkerChoiceStrategy(workerChoiceStrategy) - pool.enableTasksQueue(enableTasksQueue) - assert.strictEqual( - pool.opts.workerChoiceStrategy, - workerChoiceStrategy + if (workerChoiceStrategy === WorkerChoiceStrategies.FAIR_SHARE) { + for (const measurement of [ + Measurements.runTime, + Measurements.elu + ]) { + suite.add( + `${name} with ${workerChoiceStrategy}, with ${measurement} and ${ + enableTasksQueue ? 'with' : 'without' + } tasks queue`, + async () => { + pool.setWorkerChoiceStrategy(workerChoiceStrategy, { + measurement + }) + pool.enableTasksQueue(enableTasksQueue) + assert.strictEqual( + pool.opts.workerChoiceStrategy, + workerChoiceStrategy + ) + assert.strictEqual( + pool.opts.enableTasksQueue, + enableTasksQueue + ) + assert.strictEqual( + pool.opts.workerChoiceStrategyOptions.measurement, + measurement + ) + await runPoolifierPool(pool, { + taskExecutions, + workerData + }) + } ) - assert.strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) - await runPoolifierPool(pool, { - taskExecutions, - workerData - }) } - ) + } else { + suite.add( + `${name} with ${workerChoiceStrategy} and ${ + enableTasksQueue ? 'with' : 'without' + } tasks queue`, + async () => { + pool.setWorkerChoiceStrategy(workerChoiceStrategy) + pool.enableTasksQueue(enableTasksQueue) + assert.strictEqual( + pool.opts.workerChoiceStrategy, + workerChoiceStrategy + ) + assert.strictEqual(pool.opts.enableTasksQueue, enableTasksQueue) + await runPoolifierPool(pool, { + taskExecutions, + workerData + }) + } + ) + } } } suite @@ -137,16 +173,6 @@ export const LIST_FORMATTER = new Intl.ListFormat('en-US', { type: 'conjunction' }) -export const executeAsyncFn = async fn => { - try { - await fn() - } catch (e) { - console.error(e) - // eslint-disable-next-line n/no-process-exit - process.exit(1) - } -} - export const generateRandomInteger = ( max = Number.MAX_SAFE_INTEGER, min = 0