diff --git a/benchmarks/.gitignore b/benchmarks/.gitignore new file mode 100644 index 00000000..fbca2253 --- /dev/null +++ b/benchmarks/.gitignore @@ -0,0 +1 @@ +results/ diff --git a/benchmarks/benchmark.sh b/benchmarks/benchmark.sh old mode 100644 new mode 100755 index 9f1a7a28..05711b44 --- a/benchmarks/benchmark.sh +++ b/benchmarks/benchmark.sh @@ -1,9 +1,9 @@ #!/bin/sh -RESULTS="results" +RESULTS=${1:-"results"} LOGFILE=benchmarks.log -function print_log() { +print_log() { local message=$1 @@ -11,7 +11,7 @@ function print_log() { } -mkdir -p $RESULTS +mkdir -p "$RESULTS" # rm $RESULTS/$LOGFILE || true echo "==> verifying datalog programs"; @@ -20,5 +20,5 @@ print_log "==> verifying datalog programs"; # bash putbxdebug.sh $RESULTS # bash putbxdebug.inc.sh $RESULTS -bash putbx.sh $RESULTS -bash putbx.inc.sh $RESULTS +bash putbx.sh "$RESULTS" +bash putbx.inc.sh "$RESULTS" diff --git a/benchmarks/compare_results.sh b/benchmarks/compare_results.sh new file mode 100755 index 00000000..f304901a --- /dev/null +++ b/benchmarks/compare_results.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# $ ./compare_results.sh list +# $ ./compare_results.sh check [] +# $ ./compare_results.sh check_all + +if [ $# -lt 2 ]; then + echo "invalid number of arguments" +fi +LEFT=$1 +RIGHT=$2 +CMD=${3:-check_all} + +case $CMD in + list) + echo "$LEFT:" + for FILE in $(ls "$LEFT"/gensql/*/*.sql); do + RELPATH="${FILE##"$LEFT/"}" + echo "* $RELPATH" + done + ;; + check) + RELPATH=$4 + DIFF=${5:-diff} + echo "Compare $LEFT and $RIGHT" + echo "=======<$RELPATH>=======" + "$DIFF" "$LEFT/$RELPATH" "$RIGHT/$RELPATH" + ;; + check_all) + DIFF=${5:-diff} + echo "Compare $LEFT and $RIGHT" + for FILE in $(ls "$LEFT"/gensql/*/*.sql); do + RELPATH="${FILE##"$LEFT/"}" + echo "=======<$RELPATH>=======" + "$DIFF" "$LEFT/$RELPATH" "$RIGHT/$RELPATH" + done + ;; + *) + echo "invalid command ($CMD)" + ;; +esac diff --git a/benchmarks/putbx.sh b/benchmarks/putbx.sh index 19e5fe1e..78e03207 100644 --- a/benchmarks/putbx.sh +++ b/benchmarks/putbx.sh @@ -21,6 +21,7 @@ function print_log() { mkdir -p $RESULTS mkdir -p $RESULTS/gensql +mkdir -p $RESULTS/genlean mkdir -p $RESULTS/compile # rm $RESULTS/$LOGFILE || true @@ -28,11 +29,11 @@ mkdir -p $RESULTS/compile for FILE in $(cat dl_list) do - print_log "==> running on $FILE.dl" - echo "==> running on $FILE.dl" + print_log "==> running on $FILE.dl" + echo "==> running on $FILE.dl" mkdir -p $RESULTS/compile/$FILE mkdir -p $RESULTS/gensql/$FILE - /usr/bin/time -a -f "$FILE , %e" -o $RESULTS/$RESULTSFILE birds -f $FILE.dl -o $RESULTS/gensql/$FILE.sql -v -u > $RESULTS/compile/$FILE.log 2>> $RESULTS/compile/$FILE.err + mkdir -p $RESULTS/genlean/$FILE + /usr/bin/time -a -f "$FILE , %e" -o $RESULTS/$RESULTSFILE birds -f $FILE.dl -o $RESULTS/gensql/$FILE.sql -v -u -l $RESULTS/genlean/$FILE.lean > $RESULTS/compile/$FILE.log 2>> $RESULTS/compile/$FILE.err sleep 10 done - diff --git a/benchmarks/see_results.sh b/benchmarks/see_results.sh new file mode 100755 index 00000000..d239a869 --- /dev/null +++ b/benchmarks/see_results.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +# $ ./see_results.sh see_log +# $ ./see_results.sh see_err +# $ ./see_results.sh diff_log +# $ ./see_results.sh diff_err + +if [ $# -lt 2 ]; then + echo "invalid number of arguments" +fi + +CMD=$1 + +case $CMD in + see_log) + DIR=$2 + for FILE in "$DIR"/compile/*/*.log; do + echo "=======<$FILE>=======" + cat "$FILE" + done + ;; + see_err) + DIR=$2 + for FILE in "$DIR"/compile/*/*.err; do + echo "=======<$FILE>=======" + cat "$FILE" + done + ;; + diff_log) + LEFT=$2 + RIGHT=$3 + for FILE in "$LEFT"/compile/*/*.log; do + RELPATH="${FILE##"$LEFT/"}" + echo "=======<$RELPATH>=======" + diff -u "$LEFT/$RELPATH" "$RIGHT/$RELPATH" + done + ;; + diff_err) + LEFT=$2 + RIGHT=$3 + for FILE in "$LEFT"/compile/*/*.err; do + RELPATH="${FILE##"$LEFT/"}" + echo "=======<$RELPATH>=======" + diff -u "$LEFT/$RELPATH" "$RIGHT/$RELPATH" + done + ;; + *) + echo "invalid command ($CMD)" + ;; +esac