diff options
Diffstat (limited to 'lib/libmalloc/tests/plot.sh')
-rwxr-xr-x | lib/libmalloc/tests/plot.sh | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/lib/libmalloc/tests/plot.sh b/lib/libmalloc/tests/plot.sh new file mode 100755 index 000000000000..74a8c8edd52e --- /dev/null +++ b/lib/libmalloc/tests/plot.sh @@ -0,0 +1,81 @@ +#! /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 & + |