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 | ||
16 | const dynamicPoolLessRecentlyUsed = new DynamicThreadPool( | |
17 | size / 2, | |
18 | size * 3, | |
19 | './benchmarks/internal/thread/worker.js', | |
74750c7f | 20 | { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED } |
ff5e76e1 | 21 | ) |
325f50bc | 22 | |
2d401b2d JB |
23 | const dynamicPoolWeightedRoundRobin = new DynamicThreadPool( |
24 | size / 2, | |
25 | size * 3, | |
26 | './benchmarks/internal/thread/worker.js', | |
27 | { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN } | |
28 | ) | |
29 | ||
23ff945a JB |
30 | const dynamicPoolFairShare = new DynamicThreadPool( |
31 | size / 2, | |
32 | size * 3, | |
33 | './benchmarks/internal/thread/worker.js', | |
34 | { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE } | |
35 | ) | |
36 | ||
325f50bc | 37 | async function dynamicThreadTest ( |
e843b904 | 38 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } |
325f50bc | 39 | ) { |
74750c7f | 40 | return runPoolifierTest(dynamicPool, { tasks, workerData }) |
ff5e76e1 JB |
41 | } |
42 | ||
43 | async function dynamicThreadTestLessRecentlyUsed ( | |
e843b904 | 44 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } |
ff5e76e1 | 45 | ) { |
74750c7f | 46 | return runPoolifierTest(dynamicPoolLessRecentlyUsed, { tasks, workerData }) |
325f50bc S |
47 | } |
48 | ||
2d401b2d JB |
49 | async function dynamicThreadTestWeightedRoundRobin ( |
50 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
51 | ) { | |
52 | return runPoolifierTest(dynamicPoolWeightedRoundRobin, { tasks, workerData }) | |
53 | } | |
54 | ||
23ff945a JB |
55 | async function dynamicThreadTestFairShare ( |
56 | { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } } | |
57 | ) { | |
58 | return runPoolifierTest(dynamicPoolFairShare, { tasks, workerData }) | |
59 | } | |
60 | ||
ff5e76e1 JB |
61 | module.exports = { |
62 | dynamicThreadTest, | |
2d401b2d JB |
63 | dynamicThreadTestLessRecentlyUsed, |
64 | dynamicThreadTestWeightedRoundRobin, | |
65 | dynamicThreadTestFairShare | |
ff5e76e1 | 66 | } |