#! /bin/sh
# Things like
# '-s 10 file...' should plot Maxlife vs Wastage, Real, user + sys for all
# file for Maxsize == 10.
# '-l 10 file...' should plot Maxsize vs ... for Maxlife == 10.
usage="Usage: $0 [-s size | -l life] file..."
case $# in
[012])
echo $usage >&2
exit 1
;;
esac
tmp=./tmp.$$
case $1 in
-s)
const='Maxsize'
indep='Maxlife'
units='iterations'
;;
-l)
const='Maxlife'
indep='Maxsize'
units='words'
;;
*)
echo $usage >&2
exit 1
;;
esac
constval=$2
shift
shift
mkdir $tmp
for i
do
base=`basename $i`
echo $base
ext=`expr "$base" : "res\.\(.*\)"`
awk '$1 == "Maxtime" {
for(i = 1; i <= NF; i++) {
field[$i] = i;
}
f1="'$tmp/W.$base'";
f2="'$tmp/R.$base'";
f3="'$tmp/US.$base'";
print "\"" "'$ext'" > f1
print "\"" "'$ext'" > f2
print "\"" "'$ext'" > f3
cfld=field["'$const'"];
cval='$constval';
xfld=field["'$indep'"];
y1=field["Wastage"];
y2=field["Real"];
y3=field["User"];
y4=field["Sys"];
}
$cfld == cval {
print $xfld, $y1 * 100 >> f1;
print $xfld, $y2 >> f2;
print $xfld, $y3 + $y4 >> f3;
}
END {
print "" >> f1;
print "" >> f2;
print "" >> f3;
}' $i
done
cat $tmp/W.* > $tmp/W
rm -f $tmp/W.*
cat $tmp/R.* > $tmp/R
rm -f $tmp/R.*
cat $tmp/US.* > $tmp/US
rm -f $tmp/US.*
cd $tmp
xgraph -tk -bb -t "$const = $constval" -x "$indep ($units)" \
-y 'User + System time (seconds)' US &
xgraph -tk -bb -t "$const = $constval" -x "$indep ($units)" \
-y 'Elapsed time (seconds)' R &
xgraph -tk -bb -t "$const = $constval" -x "$indep ($units)" \
-y 'Wastage (percent of data segment)' W &
syntax highlighted by Code2HTML, v. 0.9.1