#/bin/bash #REPEAT="5 10 20 30 40 50 60 70 80 90 100 110" REPEAT="1 5 10 20 30 40 50 60 70 80 90 100 110" #REPEAT="1 110" TRIES="4" CALLPROC="jitbenchproc" DATABASE="jitbench" FUNCTIONNUM="1" #CALLPROC="jitbenchproc2" #DATABASE="imdbload" # 1 - test 10a # 2 - test 11a # 3 - test 12b #FUNCTIONNUM="1" echo "start benchmark ..." echo "'gdate' command required (or change it to 'date', if it supports +%s%3N in your system)" # copy benchmark version in for version in # jit_off jit_on_noopt jit_on_noinline jit_on_inline_opt jit_cached_noopt jit_cached_noinline jit_cached_inline_opt # std_jit_off std_jit_on_noopt std_jit_on_noinline std_jit_on_inline_opt for version in jit_off jit_on_noopt jit_on_noinline jit_on_inline_opt jit_cached_noopt jit_cached_noinline jit_cached_inline_opt do PSQL="psql -d ${DATABASE} -U postgres " if [ "$version" == "jit_off" ]; then COMMAND="set jit=off;" elif [ "$version" == "jit_on_noopt" ]; then COMMAND="set jit=on; set jit_cached=off;set jit_inline_above_cost=30000000;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=30000000;" elif [ "$version" == "jit_on_noinline" ]; then COMMAND="set jit=on; set jit_cached=off;set jit_inline_above_cost=30000000;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=0;" elif [ "$version" == "jit_on_inline_opt" ]; then COMMAND="set jit=on; set jit_cached=off;set jit_inline_above_cost=0;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=0;" elif [ "$version" == "jit_cached_noopt" ]; then COMMAND="set jit=on; set jit_cached=on;set jit_inline_above_cost=30000000;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=30000000;" elif [ "$version" == "jit_cached_noinline" ]; then COMMAND="set jit=on; set jit_cached=on;set jit_inline_above_cost=30000000;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=0;" elif [ "$version" == "jit_cached_inline_opt" ]; then COMMAND="set jit=on; set jit_cached=on;set jit_inline_above_cost=0;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=0;" elif [ "$version" == "std_jit_off" ]; then COMMAND="set jit=off;" elif [ "$version" == "std_jit_on_noopt" ]; then COMMAND="set jit=on; set jit_inline_above_cost=30000000;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=30000000;" elif [ "$version" == "std_jit_on_noinline" ]; then COMMAND="set jit=on; set jit_inline_above_cost=30000000;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=0;" elif [ "$version" == "std_jit_on_inline_opt" ]; then COMMAND="set jit=on; set jit_inline_above_cost=0;set jit_above_cost =0;set jit_dump_bitcode=off;set jit_optimize_above_cost=0;" else echo "skip ${version}" fi echo $version $COMMAND for c in $REPEAT do SQLCMD=$COMMAND for t in `seq 1 $TRIES` do SQLCMD="${SQLCMD} call ${CALLPROC}(${FUNCTIONNUM},${c});" done start=`gdate +%s%3N` PGUSER=postgres PGPASSWORD=postgres ${PSQL} -c "$SQLCMD" >> jit_results_errors.txt 2>> jit_results_errors.txt end=`gdate +%s%3N` echo "$version: repeat = $c, time = $(( $end - $start )),${CALLPROC},${TRIES},${FUNCTIONNUM}" echo "$version,$c,$(( $end - $start )),${CALLPROC},${TRIES},${FUNCTIONNUM}" >> jit_results.txt done done