docs: update changelog entries
[poolifier.git] / benchmarks / internal / thread / dynamic.js
... / ...
CommitLineData
1const {
2 DynamicThreadPool,
3 WorkerChoiceStrategies
4} = require('../../../lib/index')
5const { runPoolifierTest } = require('../../benchmarks-utils')
6
7const size = 30
8const numberOfTasks = 1
9
10const dynamicPool = new DynamicThreadPool(
11 size / 2,
12 size * 3,
13 './benchmarks/internal/thread/worker.js'
14)
15
16const dynamicPoolLessUsed = new DynamicThreadPool(
17 size / 2,
18 size * 3,
19 './benchmarks/internal/thread/worker.js',
20 { workerChoiceStrategy: WorkerChoiceStrategies.LESS_USED }
21)
22
23const dynamicPoolLessBusy = new DynamicThreadPool(
24 size / 2,
25 size * 3,
26 './benchmarks/internal/thread/worker.js',
27 { workerChoiceStrategy: WorkerChoiceStrategies.LESS_BUSY }
28)
29
30const dynamicPoolWeightedRoundRobin = new DynamicThreadPool(
31 size / 2,
32 size * 3,
33 './benchmarks/internal/thread/worker.js',
34 { workerChoiceStrategy: WorkerChoiceStrategies.WEIGHTED_ROUND_ROBIN }
35)
36
37const dynamicPoolFairShare = new DynamicThreadPool(
38 size / 2,
39 size * 3,
40 './benchmarks/internal/thread/worker.js',
41 { workerChoiceStrategy: WorkerChoiceStrategies.FAIR_SHARE }
42)
43
44async function dynamicThreadTest (
45 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
46) {
47 return runPoolifierTest(dynamicPool, { tasks, workerData })
48}
49
50async function dynamicThreadTestLessUsed (
51 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
52) {
53 return runPoolifierTest(dynamicPoolLessUsed, { tasks, workerData })
54}
55
56async function dynamicThreadTestLessBusy (
57 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
58) {
59 return runPoolifierTest(dynamicPoolLessBusy, { tasks, workerData })
60}
61
62async function dynamicThreadTestWeightedRoundRobin (
63 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
64) {
65 return runPoolifierTest(dynamicPoolWeightedRoundRobin, { tasks, workerData })
66}
67
68async function dynamicThreadTestFairShare (
69 { tasks, workerData } = { tasks: numberOfTasks, workerData: { proof: 'ok' } }
70) {
71 return runPoolifierTest(dynamicPoolFairShare, { tasks, workerData })
72}
73
74module.exports = {
75 dynamicThreadTest,
76 dynamicThreadTestLessUsed,
77 dynamicThreadTestLessBusy,
78 dynamicThreadTestWeightedRoundRobin,
79 dynamicThreadTestFairShare
80}