Merge branch 'feature/task-functions' of github.com:poolifier/poolifier into feature...
[poolifier.git] / benchmarks / README.md
index def05f58e8823bae5a5504a29fde9f5c0b8eb213..f0788a4fc970aefcb85378a7350ddc6c2dcdd940 100644 (file)
@@ -4,36 +4,44 @@ Welcome to poolifier benchmarks and thanks to look into this project.
 
 ## Folder Structure
 
-The [internal](./internal) folder contains poolifier internal benchmarks.  
-The [versus-external-pools](./versus-external-pools) folder contains benchmarks versus other Node.js pools.
+The [internal](./internal) folder contains poolifier internal benchmark.  
+The [versus-external-pools](./versus-external-pools) folder contains benchmark 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 each pool does not impact each other.  
-External pools with which we compared the poolifier results:
+We chose to use this tool because it allows to run isolated Node.js processes so each pool does not impact each other.
 
-- [piscina](https://github.com/piscinajs/piscina)
-- [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)
+- External pools with which we compare the poolifier results:
 
-Those are our results:
+  - [piscina](https://github.com/piscinajs/piscina)
+  - [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)
+  - [nanothreads](https://github.com/snuffyDev/nanothreads)
 
-- CPU Intensive task with 100k operations submitted to each pool [BENCH-100000.md](./versus-external-pools/BENCH-100000.md).
+  Those are our results:
 
-> :warning: **We would need funds to run our benchmarks more often and on Cloud VMs, please consider to sponsor this project**
+  - CPU Intensive task with 100k operations submitted to each pool: [BENCH-100000.md](./versus-external-pools/BENCH-100000.md).
 
-## 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 task function. The task function is expected to be self-contained, which makes it difficult to use in real world application without ugly hacks. -->
 
-To run the internal benchmarks, you just need to navigate to the root of poolifier project and run `pnpm 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
+> :warning: **We would need funds to run our benchmark more often and on Cloud VMs, please consider to sponsor this project**
 
-Read [README.md](./versus-external-pools/README.md)
+Read the [README.md](./versus-external-pools/README.md) to know how to run the benchmark.
+
+## Poolifier internal benchmark
+
+### Usage
+
+To run the internal benchmark, you just need to navigate to the root of poolifier project and run `pnpm benchmark`.
+
+### [Results](https://poolifier.github.io/benchmark-results/dev/bench)