perf: use hyperfine-action for benchmark vs. external pools
[poolifier.git] / benchmarks / versus-external-pools / fixed-poolifier.mjs
index aaccf5406b54a80dd281159b6c39ca577b22c338..a25b7fe40accdf75af86f9c02f22d2c4ea928a25 100644 (file)
@@ -1,30 +1,31 @@
-// IMPORT LIBRARIES
 import { FixedThreadPool } from 'poolifier'
-// FINISH IMPORT LIBRARIES
-const size = parseInt(process.env.POOL_SIZE)
-const iterations = parseInt(process.env.NUM_ITERATIONS)
+import { BenchmarkDefaults, executeAsyncFn } from './utils.mjs'
+
+const size = parseInt(process.env.POOL_SIZE) || BenchmarkDefaults.poolSize
+const numIterations =
+  parseInt(process.env.NUM_ITERATIONS) || BenchmarkDefaults.numIterations
 const data = {
   test: 'MYBENCH',
-  taskType: process.env.TASK_TYPE,
-  taskSize: parseInt(process.env.TASK_SIZE)
+  taskType: process.env.TASK_TYPE || BenchmarkDefaults.taskType,
+  taskSize: parseInt(process.env.TASK_SIZE) || BenchmarkDefaults.taskSize
 }
 
-const fixedPool = new FixedThreadPool(
+const fixedThreadPool = new FixedThreadPool(
   size,
   './workers/poolifier/function-to-bench-worker.mjs',
   {
-    enableTasksQueue: true
+    enableTasksQueue: false
   }
 )
 
 async function run () {
   const promises = new Set()
-  for (let i = 0; i < iterations; i++) {
-    promises.add(fixedPool.execute(data))
+  for (let i = 0; i < numIterations; i++) {
+    promises.add(fixedThreadPool.execute(data))
   }
   await Promise.all(promises)
   // eslint-disable-next-line n/no-process-exit
   process.exit()
 }
 
-await run()
+await executeAsyncFn(run)