speculate-0.4.1: test/memory-benchmark
#!/bin/bash
top=`dirname $0`/..
eg=$top/eg
model=$top/test/model
case "$1" in
-*) sz="$1"
shift
;;
esac
diff-() {
$1 $sz | diff -rud $model/$2$sz.out - || exit 1
}
update-diff-() {
$1 $sz > $model/$2$sz.out
}
tym() {
/usr/bin/time -f%e "$@"
}
spc() {
/usr/bin/time -f%M "$@"
}
mean() {
sum="`echo -n $* | sed -e "s/ / + /g"`"
mean="`echo "scale = 3; ($sum) / $#" | bc`"
printf "%3.3f\n" $mean
}
export -f mean
div1024() {
printf "%3.0f\n" "`echo "$1 / 1024" | bc`"
}
export -f div1024
benchmark-() {
[ -x $1 ] || { echo "$0: not found $1"; return 1; }
printf "%-18s " "$2$sz"
for run in {1..3}
do
tym $1 $sz 2>&1 >/dev/null
done | xargs bash -c 'mean "$@"' mean
}
memory-benchmark-() {
[ -x $1 ] || { echo "$0: not found $1"; return 1; }
printf "%-18s " "$2$sz"
for run in {1..3}
do
spc $1 $sz 2>&1 >/dev/null
done | xargs bash -c 'mean "$@"' mean |
xargs bash -c 'div1024 "$@"' div1024
}
benchmark-cmp-() {
[ -x $1 ] || { echo "$0: not found $1"; return 1; }
grep "^ *$2$sz " bench/runtime-$HOSTNAME | tr '\n' ' '
echo -n ' '
for run in {1..1}
do
tym $1 $sz 2>&1 >/dev/null
done | xargs bash -c 'mean "$@"' mean
}
find $* | sed -e "s/^bench/ /;s/^eg/ /" |
sort -b | sed -e "s/^ /bench/;s/^ /eg/" |
while read e
do
`basename $0`- $top/$e `basename $e`
done