-export NODE_ENV=production
+#!/usr/bin/env bash
-# Execute bench
-# export POOL_SIZE=8
-# export NUM_ITERATIONS=10000
-# hyperfine --export-markdown BENCH-10000.MD --min-runs 10 \
-# 'node dynamic-poolifier.js' \
-# 'node dynamic-suchmokuo-node-worker-threads-pool.js' \
-# 'node fixed-poolifier.js' \
-# 'node static-suchmokuo-node-worker-threads-pool.js' \
-# 'node piscina.js'
+### The -t argument permit to specify the type of task that you want to benchmark.
+### The -s argument permit to specify the size of task that you want to benchmark.
+### Supported values are CPU_INTENSIVE, IO_INTENSIVE
-# echo "Sleeping...."
-# sleep 60
+taskType='CPU_INTENSIVE'
+taskSize=5000
+while getopts "t:s:h" option
+do
+ case "${option}" in
+ t)
+ taskType=${OPTARG}
+ ;;
+ s)
+ taskSize=${OPTARG}
+ ;;
+ *|h)
+ echo "Usage: $0 [-t taskType] [-s taskSize]"
+ exit 1
+ ;;
+ esac
+done
+echo 'Running benchmarks for task type:' ${taskType} 'and task size:' ${taskSize}
+export TASK_TYPE=${taskType}
+export TASK_SIZE=${taskSize}
+# Execute bench
+export NODE_ENV=production
export POOL_SIZE=10
export NUM_ITERATIONS=100000
-hyperfine --export-markdown BENCH-100000.MD --min-runs 10 \
- 'node static-suchmokuo-node-worker-threads-pool.js' \
- 'node dynamic-poolifier.js' \
- 'node piscina.js'
-
-# export POOL_SIZE=8
-# export NUM_ITERATIONS=50000
-# hyperfine --export-markdown BENCH-50000.MD --min-runs 10 \
-# 'node dynamic-poolifier.js' \
-# 'node dynamic-suchmokuo-node-worker-threads-pool.js' \
-# 'node fixed-poolifier.js' \
-# 'node static-suchmokuo-node-worker-threads-pool.js' \
-# 'node piscina.js'
-
-# export NUM_ITERATIONS=100000
-# hyperfine --export-markdown BENCH-50000.MD --min-runs 20 \
-# 'node dynamic-poolifier.js' \
-# 'node static-suchmokuo-node-worker-threads-pool.js' \
-# 'node piscina.js'
-
+case "$OSTYPE" in
+ darwin*)
+ caffeinate ./hyperfine_benchmarks.sh
+ ;;
+ linux*)
+ systemd-inhibit ./hyperfine_benchmarks.sh
+ ;;
+ *)
+ echo "Unsupported $OSTYPE"
+ ;;
+esac