docs: generate documentation
[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).
af03108f 13We chose to use this tool because it allows to run isolated Node.js processes so each pool does not impact each other.
0c757ef3 14
77492f2e 15- External pools with which we compare the poolifier results:
af03108f
JB
16
17 - [piscina](https://github.com/piscinajs/piscina)
18 - [tinypool](https://github.com/tinylibs/tinypool)
19 - [workerpool](https://github.com/josdejong/workerpool)
20 - [worker-nodes](https://github.com/allegro/node-worker-nodes)
21 - [node-worker-threads-pool](https://github.com/SUCHMOKUO/node-worker-threads-pool)
c102227e 22 - [nanothreads](https://github.com/snuffyDev/nanothreads)
be0676b3 23
7a21a451 24 Those are our results:
be0676b3 25
fed51bee 26 - CPU Intensive task with 100k operations submitted to each pool: [BENCH-100000.md](./versus-external-pools/BENCH-100000.md).
be0676b3 27
af03108f 28- External pools with which we used to compare the poolifier results:
ae43d349 29
dbca3be9 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 task function. The task function is expected to be self-contained, which makes it difficult to use in real world application without ugly hacks. -->
bea2d6e3 31
af03108f
JB
32 - [worker-threads-pool](https://github.com/watson/worker-threads-pool): removed because unmaintained since more than 4 years.
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 36
7a21a451
JB
37> :warning: **We would need funds to run our benchmarks more often and on Cloud VMs, please consider to sponsor this project**
38
eeabc751 39Read the [README.md](./versus-external-pools/README.md) to know how to run these benchmarks.
be0676b3 40
eeabc751 41## Poolifier internal benchmark
be0676b3 42
4f8e444d 43To run the internal benchmarks, you just need to navigate to the root of poolifier project and run `pnpm benchmark`