Improve benchmarks: add IO intensive task workload, add task size option, integrate...
[poolifier.git] / benchmarks / versus-external-pools / fixed-microjob.js
CommitLineData
7f685093
JB
1// IMPORT LIBRARIES
2const { job, start } = require('microjob')
3// FINISH IMPORT LIBRARIES
4// IMPORT FUNCTION TO BENCH
5const functionToBench = require('./functions/function-to-bench')
6// FINISH IMPORT FUNCTION TO BENCH
79e7d368
JB
7const size = Number(process.env.POOL_SIZE)
8const iterations = Number(process.env.NUM_ITERATIONS)
7f685093
JB
9const data = {
10 test: 'MYBENCH',
7a6a0a96
JB
11 taskType: process.env.TASK_TYPE,
12 taskSize: process.env.TASK_SIZE
7f685093
JB
13}
14
15async function run () {
79e7d368 16 await start({ maxWorkers: size })
7f685093
JB
17 const promises = []
18 for (let i = 0; i < iterations; i++) {
19 promises.push(
20 job(
21 data => {
22 functionToBench(data)
23 },
7a6a0a96 24 { data, ctx: { functionToBench } }
7f685093
JB
25 )
26 )
27 }
28 await Promise.all(promises)
7a6a0a96 29 // eslint-disable-next-line no-process-exit
7f685093
JB
30 process.exit()
31}
32
33run()