To compare poolifier pools performance vs other pools performance we chose to use hyperfine.
We chose to use this tool because it allows to run isolated Node.js processes so each pool does not impact each other.
-
External pools with which we compare the poolifier results:
-
External pools with which we used to compare the poolifier results:
- node-worker-threads-pool: removed because it does not support dynamic modules import or import outside the task function. The task function is expected to be self-contained, which makes it difficult to use in real world application without ugly hacks.
- worker-threads-pool: removed because unmaintained since more than 4 years.
- threadwork: removed because unmaintained since more than 3 years.
- microjob: removed because unmaintained since more than 5 years.
- threads.js: removed because not a threads pool.
⚠️ We would need funds to run our benchmark more often and on Cloud VMs, please consider to sponsor the poolifier project
To run the benchmark versus other worker pools you will need to:
- Install hyperfine
- Clone the benchmark repository
- Run
pnpm install
in the benchmark cloned repository - Run the
./bench.sh
script
⚠️ Please be sure to use a quiet PC when you run the benchmark
CPU intensive task with 100k factorial(1000)
operations submitted to each pool: https://bencher.dev/perf/poolifier-benchmark.