perf: remove unneeded branching in message handling code
authorJérôme Benoit <jerome.benoit@sap.com>
Wed, 16 Aug 2023 16:34:42 +0000 (18:34 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Wed, 16 Aug 2023 16:34:42 +0000 (18:34 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
benchmarks/internal/cluster-worker.mjs
benchmarks/internal/thread-worker.mjs
examples/javascript/dynamicExample.js
examples/javascript/fixedExample.js
examples/javascript/multiFunctionWorker.js
examples/javascript/yourWorker.js
src/worker/abstract-worker.ts

index bc3548394616f1426f48dda0c8a4e9719937e15d..fee9d3f8b5cbddccd17d58dc4b95cbaf2a5cb8d8 100644 (file)
@@ -1,4 +1,4 @@
-import { isMaster } from 'cluster'
+import { isPrimary } from 'cluster'
 import { ClusterWorker } from '../../lib/index.mjs'
 import { executeTaskFunction } from '../benchmarks-utils.mjs'
 import { TaskFunctions } from '../benchmarks-types.mjs'
@@ -9,7 +9,7 @@ const taskFunction = (data) => {
   data = data || {}
   data.function = data.function || TaskFunctions.jsonIntegerSerialization
   const res = executeTaskFunction(data)
-  debug === true && console.debug('This is the main thread ' + isMaster)
+  debug === true && console.debug(`This is the main thread ${isPrimary}`)
   return res
 }
 
index 855ba62225e50513a1375eb84806a4c077cf61e2..f88cf076268cbff5f600a44eebc9bad7c64b0687 100644 (file)
@@ -9,7 +9,7 @@ const taskFunction = (data) => {
   data = data || {}
   data.function = data.function || TaskFunctions.jsonIntegerSerialization
   const res = executeTaskFunction(data)
-  debug === true && console.debug('This is the main thread ' + isMainThread)
+  debug === true && console.debug(`This is the main thread ${isMainThread}`)
   return res
 }
 
index 21fe9050ead512abecc90def3ccc61c6668db433..3428170929d49c05d6e2b0b794b875377e0a77a8 100644 (file)
@@ -30,10 +30,10 @@ for (let i = 1; i <= iterations; i++) {
     .then(() => {
       resolved++
       if (resolved === iterations) {
-        console.info('Time taken is ' + (performance.now() - start))
-        console.info('The pool was full for ' + poolFull + ' times')
-        console.info('The pool was ready for ' + poolReady + ' times')
-        return console.info('The pool was busy for ' + poolBusy + ' times')
+        console.info(`Time taken is ${performance.now() - start}`)
+        console.info(`The pool was full for ${poolFull} times`)
+        console.info(`The pool was ready for ${poolReady} times`)
+        return console.info(`The pool was busy for ${poolBusy} times`)
       }
       return null
     })
index 85f159d3bec21abe6345d56f0607a32f77dfe303..99d1a5e1f0e0cecfaf7e3755aecd044e5ae3480f 100644 (file)
@@ -23,9 +23,9 @@ for (let i = 1; i <= iterations; i++) {
     .then(() => {
       resolved++
       if (resolved === iterations) {
-        console.info('Time taken is ' + (performance.now() - start))
-        console.info('The pool was ready for ' + poolReady + ' times')
-        return console.info('The pool was busy for ' + poolBusy + ' times')
+        console.info(`Time taken is ${performance.now() - start}`)
+        console.info(`The pool was ready for ${poolReady} times`)
+        return console.info(`The pool was busy for ${poolBusy} times`)
       }
       return null
     })
index 406afa696dcd01e9c2aa68f91e55c4b0ad507c94..20c416951f91838cd6de46202691b8f16ec90e25 100644 (file)
@@ -3,12 +3,12 @@ const { ThreadWorker } = require('poolifier')
 
 function fn0 (data) {
   console.info('Executing function 0')
-  return { data: 'fn0 your input text was' + data.text }
+  return { data: `fn0 your input text was ${data.text}` }
 }
 
 function fn1 (data) {
   console.info('Executing function 1')
-  return { data: 'fn1 your input text was' + data.text }
+  return { data: `fn1 your input text was ${data.text}` }
 }
 
 module.exports = new ThreadWorker({ fn0, fn1 })
index b2df8d19093527e0ca67a24f9f84589ab1207050..c21f911dc54a502490c3e4e5684af972f6180041 100644 (file)
@@ -11,7 +11,7 @@ function yourFunction () {
     }
     JSON.stringify(o)
   }
-  debug === true && console.info('This is the main thread ' + isMainThread)
+  debug === true && console.info(`This is the main thread ${isMainThread}`)
   return { ok: 1 }
 }
 
index b475bd9821d7f8666ef1135eb98a84cfc2be41ad..98b32fe4cb9525efba1ab151b8d7b7f3efb2310b 100644 (file)
@@ -318,9 +318,6 @@ export abstract class AbstractWorker<
    * @param message - The received message.
    */
   protected messageListener (message: MessageValue<Data>): void {
-    if (this.isMain) {
-      throw new Error('Cannot handle message to worker in main worker')
-    }
     this.checkMessageWorkerId(message)
     if (message.statistics != null) {
       // Statistics message received