Commit | Line | Data |
---|---|---|
76e2e978 JB |
1 | // IMPORT LIBRARIES |
2 | import { ThreadPool } from 'nanothreads' | |
3 | // FINISH IMPORT LIBRARIES | |
4 | // IMPORT FUNCTION TO BENCH | |
5 | import functionToBench from './functions/function-to-bench.js' | |
6 | // FINISH IMPORT FUNCTION TO BENCH | |
7 | const size = parseInt(process.env.POOL_SIZE) | |
8 | const iterations = parseInt(process.env.NUM_ITERATIONS) | |
9 | const data = { | |
10 | test: 'MYBENCH', | |
11 | taskType: process.env.TASK_TYPE, | |
12 | taskSize: parseInt(process.env.TASK_SIZE) | |
13 | } | |
14 | ||
15 | const threadPool = new ThreadPool({ | |
16 | task: functionToBench, | |
17 | count: size | |
18 | }) | |
19 | ||
20 | async function run () { | |
21 | const promises = new Set() | |
22 | for (let i = 0; i < iterations; i++) { | |
23 | promises.add(threadPool.exec(data)) | |
24 | } | |
25 | await Promise.all(promises) | |
26 | // eslint-disable-next-line n/no-process-exit | |
27 | process.exit() | |
28 | } | |
29 | ||
30 | await run() |