aboutsummaryrefslogtreecommitdiffstats
path: root/misc/test/benchmark.sh
diff options
context:
space:
mode:
Diffstat (limited to 'misc/test/benchmark.sh')
-rwxr-xr-xmisc/test/benchmark.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/misc/test/benchmark.sh b/misc/test/benchmark.sh
new file mode 100755
index 0000000..fb56d01
--- /dev/null
+++ b/misc/test/benchmark.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# Usage: ./misc/test/benchmark.sh ./nnn /tmp/testdir1 ./testdir2 ...
+#
+# Don't forget to build nnn in benchmark mode: make O_BENCH=1
+
+# Use a test dir filled with genfiles.sh to get interesting output
+# (or maybe /usr/lib/)
+
+LANG=C
+
+TIME_VAL=${TIME_VAL:-"real"}
+
+SAMPLES=${SAMPLES:-100}
+
+EXE=$1
+
+bench_val () {
+ (time "$1" "$2") 2>&1 |\
+ awk '$1=="'"$TIME_VAL"'"{match($2, /[0-9]*\.[0-9]*/) ; print substr($2, RSTART, RLENGTH)}'
+}
+
+bench_dir () {
+ i=$SAMPLES
+ printf "$2"
+ while [ $((i--)) -gt 0 ] ; do
+ printf "\t%s" "$(bench_val "$1" "$2")"
+ done
+ printf "\n"
+}
+
+shift
+
+for dir in "$@" ; do
+ bench_dir "$EXE" "$dir"
+done
+