Commit | Line | Data |
---|---|---|
ff5e76e1 JB |
1 | const { |
2 | DynamicThreadPool, | |
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 | 9 | |
ff5e76e1 JB |
10 | const dynamicPool = new DynamicThreadPool( |
11 | size / 2, | |
12 | size * 3, | |
13 | './benchmarks/internal/thread/worker.js' | |
14 | ) | |
15 | ||
168c526f | 16 | const dynamicPoolLessUsed = new DynamicThreadPool( |
ff5e76e1 JB |
17 | size / 2, |
18 | size * 3, | |
19 | './benchmarks/internal/thread/worker.js', | |
737c6d97 | 20 | { workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED } |
ff5e76e1 | 21 | ) |
325f50bc | 22 | |
d4abc60a JB |
23 | const dynamicPoolLessBusy = new DynamicThreadPool( |
24 | size / 2, | |
25 | size * 3, | |
26 | './benchmarks/internal/thread/worker.js', | |
27 | { workerChoiceStrategy: WorkerChoiceStrategies.LESS_BUSY } | |
28 | ) | |
29 | ||
2d401b2d JB |
30 | const dynamicPoolWeightedRoundRobin = new DynamicThreadPool( |
31 | size / 2, | |
32 | size * 3, | |
33 | './benchmarks/internal/thread/worker.js', | |
34 | { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } | |
35 | ) | |
36 | ||
23ff945a JB |
37 | const dynamicPoolFairShare = new DynamicThreadPool( |
38 | size / 2, | |
39 | size * 3, | |
40 | './benchmarks/internal/thread/worker.js', | |
41 | { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } | |
42 | ) | |
43 | ||
325f50bc | 44 | async function dynamicThreadTest ( |
e843b904 | 45 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } |
325f50bc | 46 | ) { |
74750c7f | 47 | return runPoolifierTest(dynamicPool, { tasks, workerData }) |
ff5e76e1 JB |
48 | } |
49 | ||
168c526f | 50 | async function dynamicThreadTestLessUsed ( |
e843b904 | 51 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } |
ff5e76e1 | 52 | ) { |
168c526f | 53 | return runPoolifierTest(dynamicPoolLessUsed, { tasks, workerData }) |
325f50bc S |
54 | } |
55 | ||
d4abc60a JB |
56 | async function dynamicThreadTestLessBusy ( |
57 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
58 | ) { | |
59 | return runPoolifierTest(dynamicPoolLessBusy, { tasks, workerData }) | |
60 | } | |
61 | ||
2d401b2d JB |
62 | async function dynamicThreadTestWeightedRoundRobin ( |
63 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
64 | ) { | |
65 | return runPoolifierTest(dynamicPoolWeightedRoundRobin, { tasks, workerData }) | |
66 | } | |
67 | ||
23ff945a JB |
68 | async function dynamicThreadTestFairShare ( |
69 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
70 | ) { | |
71 | return runPoolifierTest(dynamicPoolFairShare, { tasks, workerData }) | |
72 | } | |
73 | ||
ff5e76e1 JB |
74 | module.exports = { |
75 | dynamicThreadTest, | |
168c526f | 76 | dynamicThreadTestLessUsed, |
d4abc60a | 77 | dynamicThreadTestLessBusy, |
2d401b2d JB |
78 | dynamicThreadTestWeightedRoundRobin, |
79 | dynamicThreadTestFairShare | |
ff5e76e1 | 80 | } |