docs: refine benchmarks/README.md
[poolifier.git] / benchmarks / README.md
1 # Poolifier Benchmarks
2
3 Welcome to poolifier benchmarks and thanks to look into this project.
4
5 ## Folder Structure
6
7 The [internal](./internal) folder contains poolifier internal benchmarks.
8 The [versus-external-pools](./versus-external-pools) folder contains benchmarks versus other Node.js pools.
9
10 ## Poolifier vs other pools benchmark
11
12 To compare poolifier pools performance vs other pools performance we chose to use [hyperfine](https://github.com/sharkdp/hyperfine).
13 We chose to use this tool because it allows to run isolated Node.js processes so each pool does not impact each other.
14 External pools with which we compared the poolifier results:
15
16 - [piscina](https://github.com/piscinajs/piscina)
17 - [tinypool](https://github.com/tinylibs/tinypool)
18 - [workerpool](https://github.com/josdejong/workerpool)
19 - [worker-nodes](https://github.com/allegro/node-worker-nodes)
20 - [threads.js](https://github.com/andywer/threads.js/)
21 - [threadwork](https://github.com/kevlened/threadwork)
22 - [microjob](https://github.com/wilk/microjob)
23
24 Those are our results:
25
26 - CPU Intensive task with 100k operations submitted to each pool [BENCH-100000.md](./versus-external-pools/BENCH-100000.md).
27
28 > :warning: **We would need funds to run our benchmarks more often and on Cloud VMs, please consider to sponsor this project**
29
30 External pools with which we used to compare the poolifier results:
31
32 - [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.
33 - [worker-threads-pool](https://github.com/watson/worker-threads-pool): removed because unmaintained since more than 4 years.
34
35 ### Internal
36
37 To run the internal benchmarks, you just need to navigate to the root of poolifier project and run `pnpm benchmark`
38
39 ## Versus other pools
40
41 Read [README.md](./versus-external-pools/README.md)