Add fair sharing worker choice strategy
[poolifier.git] / benchmarks / internal / cluster / dynamic.js
CommitLineData
ff5e76e1
JB
1const {
2 DynamicClusterPool,
3 WorkerChoiceStrategies
4} = require('../../../lib/index')
74750c7f 5const { runPoolifierTest } = require('../benchmark-utils')
325f50bc
S
6
7const size = 30
e843b904 8const numberOfTasks = 1
325f50bc
S
9
10const dynamicPool = new DynamicClusterPool(
11 size / 2,
12 size * 3,
1927ee67 13 './benchmarks/internal/cluster/worker.js'
325f50bc
S
14)
15
ff5e76e1
JB
16const dynamicPoolLessRecentlyUsed = new DynamicClusterPool(
17 size / 2,
18 size * 3,
19 './benchmarks/internal/cluster/worker.js',
20 { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED }
21)
22
23ff945a
JB
23const dynamicPoolFairShare = new DynamicClusterPool(
24 size / 2,
25 size * 3,
26 './benchmarks/internal/cluster/worker.js',
27 { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
28)
29
325f50bc 30async function dynamicClusterTest (
e843b904 31 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
325f50bc 32) {
74750c7f 33 return runPoolifierTest(dynamicPool, { tasks, workerData })
325f50bc
S
34}
35
ff5e76e1 36async function dynamicClusterTestLessRecentlyUsed (
e843b904 37 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
ff5e76e1 38) {
74750c7f 39 return runPoolifierTest(dynamicPoolLessRecentlyUsed, { tasks, workerData })
ff5e76e1
JB
40}
41
23ff945a
JB
42async function dynamicClusterTestFairShare (
43 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
44) {
45 return runPoolifierTest(dynamicPoolFairShare, { tasks, workerData })
46}
47
ff5e76e1
JB
48module.exports = {
49 dynamicClusterTest,
23ff945a 50 dynamicClusterTestFairShare,
ff5e76e1
JB
51 dynamicClusterTestLessRecentlyUsed
52}