Commit | Line | Data |
---|---|---|
ff5e76e1 JB |
1 | const { |
2 | DynamicClusterPool, | |
3 | WorkerChoiceStrategies | |
4 | } = require('../../../lib/index') | |
d1a9aa41 | 5 | const { runPoolifierTest } = require('../../benchmarks-utils') |
325f50bc S |
6 | |
7 | const size = 30 | |
e843b904 | 8 | const numberOfTasks = 1 |
325f50bc S |
9 | |
10 | const dynamicPool = new DynamicClusterPool( | |
11 | size / 2, | |
12 | size * 3, | |
1927ee67 | 13 | './benchmarks/internal/cluster/worker.js' |
325f50bc S |
14 | ) |
15 | ||
ff5e76e1 JB |
16 | const dynamicPoolLessRecentlyUsed = new DynamicClusterPool( |
17 | size / 2, | |
18 | size * 3, | |
19 | './benchmarks/internal/cluster/worker.js', | |
20 | { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED } | |
21 | ) | |
22 | ||
2d401b2d JB |
23 | const dynamicPoolWeightedRoundRobin = new DynamicClusterPool( |
24 | size / 2, | |
25 | size * 3, | |
26 | './benchmarks/internal/cluster/worker.js', | |
27 | { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } | |
28 | ) | |
29 | ||
23ff945a JB |
30 | const dynamicPoolFairShare = new DynamicClusterPool( |
31 | size / 2, | |
32 | size * 3, | |
33 | './benchmarks/internal/cluster/worker.js', | |
34 | { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } | |
35 | ) | |
36 | ||
325f50bc | 37 | async function dynamicClusterTest ( |
e843b904 | 38 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } |
325f50bc | 39 | ) { |
74750c7f | 40 | return runPoolifierTest(dynamicPool, { tasks, workerData }) |
325f50bc S |
41 | } |
42 | ||
ff5e76e1 | 43 | async function dynamicClusterTestLessRecentlyUsed ( |
e843b904 | 44 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } |
ff5e76e1 | 45 | ) { |
74750c7f | 46 | return runPoolifierTest(dynamicPoolLessRecentlyUsed, { tasks, workerData }) |
ff5e76e1 JB |
47 | } |
48 | ||
2d401b2d JB |
49 | async function dynamicClusterTestWeightedRoundRobin ( |
50 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
51 | ) { | |
52 | return runPoolifierTest(dynamicPoolWeightedRoundRobin, { tasks, workerData }) | |
53 | } | |
54 | ||
23ff945a JB |
55 | async function dynamicClusterTestFairShare ( |
56 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
57 | ) { | |
58 | return runPoolifierTest(dynamicPoolFairShare, { tasks, workerData }) | |
59 | } | |
60 | ||
ff5e76e1 JB |
61 | module.exports = { |
62 | dynamicClusterTest, | |
2d401b2d JB |
63 | dynamicClusterTestLessRecentlyUsed, |
64 | dynamicClusterTestWeightedRoundRobin, | |
65 | dynamicClusterTestFairShare | |
ff5e76e1 | 66 | } |