X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=benchmarks%2Finternal%2Fthread%2Fdynamic.js;h=503ea27cfbd6e2f40e8e13ae0c92b9832ca6c34a;hb=refs%2Ftags%2Fv2.4.0-3;hp=290820778e44ec7df7d2b2f2101b9dafeef4cb8c;hpb=e843b9042b77e0e4e17c193820a3e05ffc92cffe;p=poolifier.git diff --git a/benchmarks/internal/thread/dynamic.js b/benchmarks/internal/thread/dynamic.js index 29082077..503ea27c 100644 --- a/benchmarks/internal/thread/dynamic.js +++ b/benchmarks/internal/thread/dynamic.js @@ -2,7 +2,7 @@ const { DynamicThreadPool, WorkerChoiceStrategies } = require('../../../lib/index') -const { runPoolifierTest } = require('../benchmark-utils') +const { runPoolifierTest } = require('../../benchmarks-utils') const size = 30 const numberOfTasks = 1 @@ -13,11 +13,32 @@ const dynamicPool = new DynamicThreadPool( './benchmarks/internal/thread/worker.js' ) -const dynamicPoolLessRecentlyUsed = new DynamicThreadPool( +const dynamicPoolLessUsed = new DynamicThreadPool( size / 2, size * 3, './benchmarks/internal/thread/worker.js', - { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED } + { workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED } +) + +const dynamicPoolLessBusy = new DynamicThreadPool( + size / 2, + size * 3, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.LESS_BUSY } +) + +const dynamicPoolWeightedRoundRobin = new DynamicThreadPool( + size / 2, + size * 3, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } +) + +const dynamicPoolFairShare = new DynamicThreadPool( + size / 2, + size * 3, + './benchmarks/internal/thread/worker.js', + { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } ) async function dynamicThreadTest ( @@ -26,13 +47,34 @@ async function dynamicThreadTest ( return runPoolifierTest(dynamicPool, { tasks, workerData }) } -async function dynamicThreadTestLessRecentlyUsed ( +async function dynamicThreadTestLessUsed ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(dynamicPoolLessUsed, { tasks, workerData }) +} + +async function dynamicThreadTestLessBusy ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(dynamicPoolLessBusy, { tasks, workerData }) +} + +async function dynamicThreadTestWeightedRoundRobin ( + { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } +) { + return runPoolifierTest(dynamicPoolWeightedRoundRobin, { tasks, workerData }) +} + +async function dynamicThreadTestFairShare ( { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } ) { - return runPoolifierTest(dynamicPoolLessRecentlyUsed, { tasks, workerData }) + return runPoolifierTest(dynamicPoolFairShare, { tasks, workerData }) } module.exports = { dynamicThreadTest, - dynamicThreadTestLessRecentlyUsed + dynamicThreadTestLessUsed, + dynamicThreadTestLessBusy, + dynamicThreadTestWeightedRoundRobin, + dynamicThreadTestFairShare }