next.js/bench/recursive-delete/run.sh
run.sh64 lines1.2 KB
#!/usr/bin/env bash
set -euo pipefail

ITERATIONS=5

show_help() {
  echo "Usage: $(basename "$0") [-i|--iterations N] [-h|--help]"
  exit "${1:-0}"
}

if ! OPTS=$(getopt -o i:h --long iterations:,help -n "$(basename "$0")" -- "$@"); then
  show_help 1
fi
eval set -- "$OPTS"

while true; do
  case "$1" in
    -i|--iterations)
      ITERATIONS="$2"
      shift 2
      ;;
    -h|--help)
      show_help
      ;;
    *)
      break
      ;;
  esac
done

cleanup() {
  for i in $(seq 1 "$ITERATIONS"); do
    rm -rf "fixtures-$i"
  done
}

trap cleanup EXIT
cleanup

run_benchmark() {
  local name=$1
  local script=$2
  shift 2

  echo "-----------"
  for i in $(seq 1 "$ITERATIONS"); do
    local fixture="fixtures-$i"
    mkdir "$fixture"
    cd "fixtures-$i"
    fuzzponent -d 2 -s 20
    cd ..
    echo "$name $i"
    node "$script" "$fixture" "$@"
    if [[ -d "$fixture" ]]; then rmdir "$fixture"; fi
  done
}

run_benchmark "rimraf (async)" "rimraf.js" "async"
run_benchmark "rimraf (sync)" "rimraf.js" "sync"
run_benchmark "recursive delete" "recursive-delete.js"
run_benchmark "nodejs rm (promises)" "nodejs-rm.js" "promises"
run_benchmark "nodejs rm (callback)" "nodejs-rm.js" "callback"
run_benchmark "nodejs rm (sync)" "nodejs-rm.js" "sync"
Quest for Codev2.0.0
/
SIGN IN