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