Add benchmark for quick select algorithm evaluation. (#255)
[poolifier.git] / benchmarks / internal / thread / dynamic.js
CommitLineData
ff5e76e1
JB
1const {
2 DynamicThreadPool,
3 WorkerChoiceStrategies
4} = require('../../../lib/index')
74750c7f 5const { runPoolifierTest } = require('../benchmark-utils')
325f50bc
S
6
7const size = 30
8
ff5e76e1
JB
9const dynamicPool = new DynamicThreadPool(
10 size / 2,
11 size * 3,
12 './benchmarks/internal/thread/worker.js'
13)
14
15const dynamicPoolLessRecentlyUsed = new DynamicThreadPool(
16 size / 2,
17 size * 3,
18 './benchmarks/internal/thread/worker.js',
74750c7f 19 { workerChoiceStrategy: WorkerChoiceStrategies.LESS_RECENTLY_USED }
ff5e76e1 20)
325f50bc
S
21
22async function dynamicThreadTest (
23 { tasks, workerData } = { tasks: 1, workerData: { proof: 'ok' } }
24) {
74750c7f 25 return runPoolifierTest(dynamicPool, { tasks, workerData })
ff5e76e1
JB
26}
27
28async function dynamicThreadTestLessRecentlyUsed (
29 { tasks, workerData } = { tasks: 1, workerData: { proof: 'ok' } }
30) {
74750c7f 31 return runPoolifierTest(dynamicPoolLessRecentlyUsed, { tasks, workerData })
325f50bc
S
32}
33
ff5e76e1
JB
34module.exports = {
35 dynamicThreadTest,
36 dynamicThreadTestLessRecentlyUsed
37}