planckforth/benchmark/gendoc.sh

32 lines
769 B
Bash
Raw Normal View History

2021-01-11 08:22:56 +01:00
#!/bin/bash
2021-01-11 09:28:57 +01:00
TARGETS="i386-linux-handwritten c python"
2021-01-11 08:22:56 +01:00
TIMEFORMAT='%U'
function benchmark () {
sum=0
for i in `seq $2`; do
t=`{ eval $1; } 2>&1`
sum=`echo $t + $sum | bc`
done
average=`echo "scale=3; $sum / $2" | bc | xargs printf "%.3f"`
echo $average
}
function generate-table {
echo "## $1"
2021-01-11 09:28:57 +01:00
echo "\`$2\`"
2021-01-11 08:22:56 +01:00
echo
echo "| implementation | sec |"
echo "|:---------------|----:|"
for impl in $TARGETS; do
make $impl 2>&1 > /dev/null
2021-01-11 09:28:57 +01:00
t=`benchmark "time $2 2>&1 > /dev/null" $3`
2021-01-11 08:22:56 +01:00
echo "| $impl | $t |"
done
2021-01-11 09:28:57 +01:00
echo
2021-01-11 09:21:32 +01:00
}
2021-01-11 08:22:56 +01:00
2021-01-11 09:21:32 +01:00
echo "# Benchmarks"
2021-01-11 09:28:57 +01:00
generate-table "Bootstrap Time" "./planck < bootstrap.fs benchmark/nop.fs" 1
generate-table "Fib(20)" "./planck < bootstrap.fs benchmark/fib.fs" 1