perf(benchmark): port to homemade mitata fork
[poolifier.git] / benchmarks / internal / bench.mjs
index 442326a76f908fd0f9c301a67c09d9c6d40ef861..480998b72c935900681627839091162befbd6a23 100644 (file)
@@ -1,8 +1,6 @@
 import { exit } from 'node:process'
 import { parseArgs } from 'node:util'
 
-import { run } from 'mitata'
-
 import {
   availableParallelism,
   PoolTypes,
@@ -10,8 +8,8 @@ import {
 } from '../../lib/index.mjs'
 import { TaskFunctions } from '../benchmarks-types.cjs'
 import {
-  buildPoolifierBenchmarkMitata,
-  runPoolifierBenchmarkBenchmarkJs
+  runPoolifierBenchmarkBenchmarkJsSuite,
+  runPoolifierBenchmarkMitata
 } from '../benchmarks-utils.mjs'
 
 const poolSize = availableParallelism()
@@ -21,26 +19,21 @@ const workerData = {
   taskSize: 50000
 }
 
-const options = {
-  type: {
-    type: 'string',
-    short: 't'
-  }
-}
-const { values } = parseArgs({
-  args: process.argv,
-  options,
-  strict: true,
-  allowPositionals: true
-})
-
-let fixedThreadPool
-let dynamicThreadPool
-let fixedClusterPool
-let dynamicClusterPool
-switch (values.type) {
+switch (
+  parseArgs({
+    args: process.argv,
+    options: {
+      type: {
+        type: 'string',
+        short: 't'
+      }
+    },
+    strict: true,
+    allowPositionals: true
+  }).values.type
+) {
   case 'mitata':
-    fixedThreadPool = buildPoolifierBenchmarkMitata(
+    await runPoolifierBenchmarkMitata(
       'FixedThreadPool',
       WorkerTypes.thread,
       PoolTypes.fixed,
@@ -50,7 +43,7 @@ switch (values.type) {
         workerData
       }
     )
-    dynamicThreadPool = buildPoolifierBenchmarkMitata(
+    await runPoolifierBenchmarkMitata(
       'DynamicThreadPool',
       WorkerTypes.thread,
       PoolTypes.dynamic,
@@ -60,7 +53,7 @@ switch (values.type) {
         workerData
       }
     )
-    fixedClusterPool = buildPoolifierBenchmarkMitata(
+    await runPoolifierBenchmarkMitata(
       'FixedClusterPool',
       WorkerTypes.cluster,
       PoolTypes.fixed,
@@ -70,7 +63,7 @@ switch (values.type) {
         workerData
       }
     )
-    dynamicClusterPool = buildPoolifierBenchmarkMitata(
+    await runPoolifierBenchmarkMitata(
       'DynamicClusterPool',
       WorkerTypes.cluster,
       PoolTypes.dynamic,
@@ -80,15 +73,10 @@ switch (values.type) {
         workerData
       }
     )
-    await run()
-    await fixedThreadPool.destroy()
-    await dynamicThreadPool.destroy()
-    await fixedClusterPool.destroy()
-    await dynamicClusterPool.destroy()
     break
   case 'benchmark.js':
   default:
-    await runPoolifierBenchmarkBenchmarkJs(
+    await runPoolifierBenchmarkBenchmarkJsSuite(
       'FixedThreadPool',
       WorkerTypes.thread,
       PoolTypes.fixed,
@@ -98,7 +86,7 @@ switch (values.type) {
         workerData
       }
     )
-    await runPoolifierBenchmarkBenchmarkJs(
+    await runPoolifierBenchmarkBenchmarkJsSuite(
       'DynamicThreadPool',
       WorkerTypes.thread,
       PoolTypes.dynamic,
@@ -108,7 +96,7 @@ switch (values.type) {
         workerData
       }
     )
-    await runPoolifierBenchmarkBenchmarkJs(
+    await runPoolifierBenchmarkBenchmarkJsSuite(
       'FixedClusterPool',
       WorkerTypes.cluster,
       PoolTypes.fixed,
@@ -118,7 +106,7 @@ switch (values.type) {
         workerData
       }
     )
-    await runPoolifierBenchmarkBenchmarkJs(
+    await runPoolifierBenchmarkBenchmarkJsSuite(
       'DynamicClusterPool',
       WorkerTypes.cluster,
       PoolTypes.dynamic,