## Folder Structure
-The internal folder contains poolifier internal benchmarks.
-The versus-external-pools folder contains benchmarks versus other Node.js pools.
+The [internal](./internal) folder contains poolifier internal benchmarks.
+The [versus-external-pools](./versus-external-pools) folder contains benchmarks versus other Node.js pools.
## Poolifier vs other pools benchmark
To compare poolifier pools performance vs other pools performance we chose to use [hyperfine](https://github.com/sharkdp/hyperfine).
-We chose to use this tool because it allows to run isolated Node.js processes so that each pool does not impact each other.
+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 compared the poolifier results:
- [piscina](https://github.com/piscinajs/piscina)
-- [SUCHMOKUO/node-worker-threads-pool](https://github.com/SUCHMOKUO/node-worker-threads-pool)
-- [threads.js](https://github.com/andywer/threads.js/)
+- [tinypool](https://github.com/tinylibs/tinypool)
+- [workerpool](https://github.com/josdejong/workerpool)
+- [worker-nodes](https://github.com/allegro/node-worker-nodes)
+- [node-worker-threads-pool](https://github.com/SUCHMOKUO/node-worker-threads-pool)
Those are our results:
-- CPU Intensive task with 100k operations submitted to each pool [BENCH-100000.md](./versus-external-pools/BENCH-100000.md).
- This benchmark ran on a MacBook Pro 2015, 2,2 GHz Intel Core i7 quad-core, 16 GB 1600 MHz DDR3.
+- CPU Intensive task with 100k operations submitted to each pool [BENCH-100000.md](./versus-external-pools/BENCH-100000.md).
> :warning: **We would need funds to run our benchmarks more often and on Cloud VMs, please consider to sponsor this project**
-## How to run benchmarks
+External pools with which we used to compare the poolifier results:
-### Internal
+<!-- - [node-worker-threads-pool](https://github.com/SUCHMOKUO/node-worker-threads-pool): removed because it does not support dynamic modules import or import outside the worker function. The worker function is expected to be self-contained, which makes it difficult to use in real world application without ugly hacks. -->
-To run the internal benchmark you just need to navigate to the root of poolifier project and run `npm run benchmark`
+- [worker-threads-pool](https://github.com/watson/worker-threads-pool): removed because unmaintained since more than 4 years.
+- [threadwork](https://github.com/kevlened/threadwork): removed because unmaintained since more than 3 years.
+- [microjob](https://github.com/wilk/microjob): removed because unmaintained since more than 5 years.
+- [threads.js](https://github.com/andywer/threads.js/): removed because not a threads pool.
-## Versus other pools
+### Internal
-To run the benchmark versus other pools you will need to:
+To run the internal benchmarks, you just need to navigate to the root of poolifier project and run `pnpm benchmark`
-- [Install hyperfine](https://github.com/sharkdp/hyperfine#installation)
-- Run the `./bench.sh` into the `versus-external-pools` folder
+## Versus other pools
-> :warning: **Please be sure to use a quite PC when you run the benchmarks**
+Read [README.md](./versus-external-pools/README.md)