node-worker-farm | Distribute processing tasks to child processes | Runtime Evironment library
kandi X-RAY | node-worker-farm Summary
kandi X-RAY | node-worker-farm Summary
Distribute processing tasks to child processes with an über-simple API and baked-in durability & custom concurrency options.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- Send a mock method
node-worker-farm Key Features
node-worker-farm Examples and Code Snippets
Community Discussions
Trending Discussions on node-worker-farm
QUESTION
I'm trying to find a better way to run some cpu bound tasks using NodeJS. There are 2 options as I know, fork processes and worker threads. So I have ran a benchmark between them and found out that fork process is faster.
So, I have some questions here:
- Why is the fork process method faster?
- Are the worker threads useless? Or what are the worker threads advantages, consumes less cpu/memory?
I'm running the code on MacOS(2.2 GHz Intel Core i7, 16 GB 1600 MHz DDR3) using node v10.15.3
the benchmark code is in my gist:
threads pool library microjob and process pool library node-worker-farm are used in my code as you can see. The running cmd is : node --experimental-worker benchmark.js
ANSWER
Answered 2019-Jul-08 at 07:22I think @gireeshpunathil's comment from https://github.com/nodejs/help/issues/1920 can help a lot:
there is no single formulae that computes which method will be faster. It depends on a number of parameters:
- the running time of the job itself
- the interaction of the job with the spawning code
- the machine characteristics, specifically cpu, memory and scheduling
the fork uses native fork and exec, that is heavy-weight than thread creation. fork creates a new node instance with new v8, isolate, libuv etc. worker does not create new node instance. forked process uses IPC channel to talk to the forking process, if needed. workers use in-memory buffers.
So:
- if the execution time of the microjob is too small compared to the process creation, worker method will be faster.
- if the job communicates with the driver, the frequency of communication and the cost of communication will decide the winner
- if the job runs as long independent piece of code with no interaction, fork method will eventually prove faster (I think that
is happening here)
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install node-worker-farm
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page