Update dependencies
[poolifier.git] / benchmarks / bench.js
index 017ac20be223e0fd26faba804e54c2329dcf931c..2ad7f22c5e47ec7827366ed3c95b21a3402c06cf 100644 (file)
@@ -1,81 +1,37 @@
 const Benchmark = require('benchmark')
+const { dynamicClusterTest } = require('./cluster/dynamic')
+const { fixedClusterTest } = require('./cluster/fixed')
+const { dynamicThreadTest } = require('./thread/dynamic')
+const { fixedThreadTest } = require('./thread/fixed')
+
 const suite = new Benchmark.Suite()
-const { FixedThreadPool } = require('../lib/index')
-const { DynamicThreadPool } = require('../lib/index')
-const size = 30
-const tasks = 1
 
 const LIST_FORMATTER = new Intl.ListFormat('en-US', {
   style: 'long',
   type: 'conjunction'
 })
 
-// pools
-const fixedPool = new FixedThreadPool(size, './threadWorker.js', {
-  maxTasks: 10000
-})
-const dynamicPool = new DynamicThreadPool(
-  size / 2,
-  size * 3,
-  './threadWorker.js',
-  { maxTasks: 10000 }
-)
-const workerData = { proof: 'ok' }
-
-// wait some seconds before start, my pools need to load threads !!!
+// Wait some seconds before start, pools need to load threads !!!
 setTimeout(async () => {
   test()
 }, 3000)
 
-// fixed pool proof
-async function fixedTest () {
-  return new Promise((resolve, reject) => {
-    let executions = 0
-    for (let i = 0; i <= tasks; i++) {
-      fixedPool
-        .execute(workerData)
-        .then(res => {
-          executions++
-          if (executions === tasks) {
-            return resolve('FINISH')
-          }
-          return null
-        })
-        .catch(err => {
-          console.error(err)
-        })
-    }
-  })
-}
-
-async function dynamicTest () {
-  return new Promise((resolve, reject) => {
-    let executions = 0
-    for (let i = 0; i <= tasks; i++) {
-      dynamicPool
-        .execute(workerData)
-        .then(res => {
-          executions++
-          if (executions === tasks) {
-            return resolve('FINISH')
-          }
-          return null
-        })
-        .catch(err => console.error(err))
-    }
-  })
-}
-
 async function test () {
-  // add tests
+  // Add tests
   suite
-    .add('PioardiStaticPool', async function () {
-      await fixedTest()
+    .add('Pioardi:Static:ThreadPool', async function () {
+      await fixedThreadTest()
+    })
+    .add('Pioardi:Dynamic:ThreadPool', async function () {
+      await dynamicThreadTest()
+    })
+    .add('Pioardi:Static:ClusterPool', async function () {
+      await fixedClusterTest()
     })
-    .add('PioardiDynamicPool', async function () {
-      await dynamicTest()
+    .add('Pioardi:Dynamic:ClusterPool', async function () {
+      await dynamicClusterTest()
     })
-    // add listeners
+    // Add listeners
     .on('cycle', function (event) {
       console.log(event.target.toString())
     })
@@ -87,6 +43,5 @@ async function test () {
       // eslint-disable-next-line no-process-exit
       process.exit()
     })
-    // run async
-    .run({ async: true })
+    .run()
 }