refactor: ensure functions to bench are called properly
[poolifier.git] / benchmarks / README.md
index 61b57518fecd5346ae814c8b90dd25bb82e89eef..84970a5a1cea93e5ce8923b983e0c2816060df69 100644 (file)
@@ -4,23 +4,27 @@ Welcome to poolifier benchmarks and thanks to look into this project.
 
 ## 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)
+- [tinypool](https://github.com/tinylibs/tinypool)
+- [node-worker-threads-pool](https://github.com/SUCHMOKUO/node-worker-threads-pool): removed from the benchmark because does not support dynamic ESM modules import or import outside of the worker function, which makes it pretty hard to use without tricks to make the worker function self-contained
+- [workerpool](https://github.com/josdejong/workerpool)
+- [worker-nodes](https://github.com/allegro/node-worker-nodes)
 - [threads.js](https://github.com/andywer/threads.js/)
+- [threadwork](https://github.com/kevlened/threadwork)
+- [microjob](https://github.com/wilk/microjob)
 
 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**
 
@@ -28,13 +32,8 @@ Those are our results:
 
 ### Internal
 
-To run the internal benchmark you just need to navigate to the root of poolifier project and run `npm run benchmark`
+To run the internal benchmarks, you just need to navigate to the root of poolifier project and run `pnpm benchmark`
 
 ## Versus other pools
 
-To run the benchmark versus other pools you will need to:
-
-- [Install hyperfine](https://github.com/sharkdp/hyperfine#installation)
-- Run the `./bench.sh` into the `versus-external-pools` folder
-
-> :warning: **Please be sure to use a quite PC when you run the benchmarks**
+Read [README.md](./versus-external-pools/README.md)