X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmarks%2Finternal%2Fthread%2Ffixed.js;h=c8be6feb17c3fe92a30602b58c3aaba8482f9bc3;hb=d49303bcd1dc86f36030dff08796f869681d4eae;hp=966fc0e19ce42bae944a3ea8a4f2484e64870dc1;hpb=74750c7f0a8b83b3a579f4d7fc96070ca540b234;p=poolifier.git diff --git a/benchmarks/internal/thread/fixed.js b/benchmarks/internal/thread/fixed.js index 966fc0e1..c8be6feb 100644 --- a/benchmarks/internal/thread/fixed.js +++ b/benchmarks/internal/thread/fixed.js @@ -1,17 +1,88 @@ -const { FixedThreadPool } = require('../../../lib/index') -const { runPoolifierTest } = require('../benchmark-utils') +const { + FixedThreadPool, + WorkerChoiceStrategies +} = require('../../../lib/index') +const { runPoolifierTest } = require('../../benchmarks-utils') const size = 30 +const numberOfTasks = 1 const fixedPool = new FixedThreadPool( size, './benchmarks/internal/thread/worker.js' ) +const fixedPoolTasksQueue = new FixedThreadPool( + size, + './benchmarks/internal/thread/worker.js', + { enableTasksQueue: true } +) + +const fixedPoolLessUsed = new FixedThreadPool( + size, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED } +) + +const fixedPoolLessBusy = new FixedThreadPool( + size, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.LESS_BUSY } +) + +const fixedPoolWeightedRoundRobin = new FixedThreadPool( + size, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } +) + +const fixedPoolFairShare = new FixedThreadPool( + size, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } +) + async function fixedThreadTest ( - { tasks, workerData } = { tasks: 1, workerData: { proof: 'ok' } } + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } ) { return runPoolifierTest(fixedPool, { tasks, workerData }) } -module.exports = { fixedThreadTest } +async function fixedThreadTasksQueueTest ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(fixedPoolTasksQueue, { tasks, workerData }) +} + +async function fixedThreadTestLessUsed ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(fixedPoolLessUsed, { tasks, workerData }) +} + +async function fixedThreadTestLessBusy ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(fixedPoolLessBusy, { tasks, workerData }) +} + +async function fixedThreadTestWeightedRoundRobin ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(fixedPoolWeightedRoundRobin, { tasks, workerData }) +} + +async function fixedThreadTestFairShare ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(fixedPoolFairShare, { tasks, workerData }) +} + +module.exports = { + fixedThreadTest, + fixedThreadTasksQueueTest, + fixedThreadTestLessUsed, + fixedThreadTestLessBusy, + fixedThreadTestWeightedRoundRobin, + fixedThreadTestFairShare +}