benchmarking for encoding and decoding
authorMathis Rosenhauer <rosenhauer@dkrz.de>
Tue, 18 Feb 2014 09:39:18 +0000 (10:39 +0100)
committerMathis Rosenhauer <rosenhauer@dkrz.de>
Tue, 18 Feb 2014 10:36:51 +0000 (11:36 +0100)
Makefile.am
tests/Makefile.am
tests/bdec.sh [new file with mode: 0755]
tests/benc.sh [new file with mode: 0755]

index 620b055..5003d8c 100644 (file)
@@ -1,3 +1,10 @@
 ACLOCAL_AMFLAGS = -I m4
 SUBDIRS = src tests
-EXTRA_DIST = doc/license.txt doc/logo.svg
\ No newline at end of file
+EXTRA_DIST = doc/license.txt doc/logo.svg
+bench: all
+       cd tests && $(MAKE) $(AM_MAKEFLAGS) bench
+benc: all
+       cd tests && $(MAKE) $(AM_MAKEFLAGS) benc
+bdec: all
+       cd tests && $(MAKE) $(AM_MAKEFLAGS) bdec
+.PHONY: bench benc bdec
index 1a1a7f1..6fd6f55 100644 (file)
@@ -14,4 +14,10 @@ check_long_fs_SOURCES = check_long_fs.c check_aec.h \
 $(top_builddir)/src/libaec.h
 
 LDADD = libcheck_aec.la $(top_builddir)/src/libaec.la
-EXTRA_DIST = sampledata.sh
+EXTRA_DIST = sampledata.sh benc.sh bdec.sh
+bench: benc bdec
+benc:
+       ./benc.sh
+bdec:
+       ./bdec.sh
+.PHONY: bench benc bdec
diff --git a/tests/bdec.sh b/tests/bdec.sh
new file mode 100755 (executable)
index 0000000..703bb60
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+AEC=../src/aec
+
+if [ ! -f bench.rz ]; then
+    echo "No encoded file found. Encoding now..."
+    ./benc.sh
+fi
+rm -f dec.dat
+bsize=$(stat -c "%s" bench.dat)
+utime=$(
+    (
+        /usr/bin/time -f "%U" $AEC -d -n16 -j64 -r256 -m -c \
+            bench.rz > dec.dat
+    ) 2>&1
+)
+perf=$(echo "$bsize/1048576/$utime" | bc)
+echo "\e[0;32m*** Decoding with $perf MiB/s user time ***\e[0m"
+cmp bench.dat dec.dat
diff --git a/tests/benc.sh b/tests/benc.sh
new file mode 100755 (executable)
index 0000000..921ded4
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+AEC=../src/aec
+
+if [ ! -f  typical.dat ]; then
+    wget https://www.dkrz.de/redmine/attachments/download/441/typical.dat
+fi
+if [ ! -f  bench.dat ]; then
+    for i in $(seq 0 499);
+    do
+        cat typical.dat >> bench.dat
+    done
+fi
+rm -f bench.rz
+utime=$(
+    (
+        /usr/bin/time -f "%U" $AEC -n16 -j64 -r256 -m -c bench.dat > bench.rz
+    ) 2>&1
+)
+bsize=$(stat -c "%s" bench.dat)
+perf=$(echo "$bsize/1048576/$utime" | bc)
+echo "\e[0;32m*** Encoding with $perf MiB/s user time ***\e[0m"