X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmarks%2Finternal%2Fthread%2Fdynamic.js;fp=benchmarks%2Finternal%2Fthread%2Fdynamic.js;h=bc9b3d8194e91e14305419eb2265bc4bced929b3;hb=ff5e76e152be8540cba8118bb4e2b9da314dfff5;hp=f3f0e04977e3ee718180bd3122b5d08b39ef3497;hpb=1927ee6758147bb8a2479b987322564cea20992b;p=poolifier.git diff --git a/benchmarks/internal/thread/dynamic.js b/benchmarks/internal/thread/dynamic.js index f3f0e049..bc9b3d81 100644 --- a/benchmarks/internal/thread/dynamic.js +++ b/benchmarks/internal/thread/dynamic.js @@ -1,27 +1,37 @@ -const { DynamicThreadPool } = require('../../../lib/index') +const { + DynamicThreadPool, + WorkerChoiceStrategies +} = require('../../../lib/index') +const { runTest } = require('../benchmark-utils') const size = 30 -const dynamicPool = new DynamicThreadPool(size / 2, size * 3, './worker.js') +const dynamicPool = new DynamicThreadPool( + size / 2, + size * 3, + './benchmarks/internal/thread/worker.js' +) + +const dynamicPoolLessRecentlyUsed = new DynamicThreadPool( + size / 2, + size * 3, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: DynamicThreadPool.LESS_RECENTLY_USED } +) async function dynamicThreadTest ( { tasks, workerData } = { tasks: 1, workerData: { proof: 'ok' } } ) { - return new Promise((resolve, reject) => { - let executions = 0 - for (let i = 0; i <= tasks; i++) { - dynamicPool - .execute(workerData) - .then(res => { - executions++ - if (executions === tasks) { - return resolve('FINISH') - } - return null - }) - .catch(err => console.error(err)) - } - }) + return runTest(dynamicPool, { tasks, workerData }) +} + +async function dynamicThreadTestLessRecentlyUsed ( + { tasks, workerData } = { tasks: 1, workerData: { proof: 'ok' } } +) { + return runTest(dynamicPoolLessRecentlyUsed, { tasks, workerData }) } -module.exports = { dynamicThreadTest } +module.exports = { + dynamicThreadTest, + dynamicThreadTestLessRecentlyUsed +}