#!/bin/sh # set -x if [ $# -lt 4 ]; then echo "usage: perf_diff iterations common-options options1 options4 [conf-name1] [conf-name2]" echo "example: perf_diff 100 \"-bm=all\" \"-log\" \"-nocache\" c1 c2" exit 1 fi BINDIR=`dirname $0` test -z "$RAILS_PERF_DATA" && RAILS_PERF_DATA=$HOME ITER="$1" COMMON="$2" OPT1="$3" OPT2="$4" DATE=`date +%m-%d` BENCHMARK="" for opt in $COMMON; do case $opt in -bm=*) BENCHMARK=${opt#-bm=};; esac done if [ $# -gt 4 ]; then FILE1="$RAILS_PERF_DATA/${DATE}.${BENCHMARK}.$5.txt" else FILE1="$RAILS_PERF_DATA/perf_run1.${BENCHMARK}.txt" fi if [ $# -gt 5 ]; then FILE2="$RAILS_PERF_DATA/${DATE}.${BENCHMARK}.$6.txt" else FILE2="$RAILS_PERF_DATA/perf_run2.${BENCHMARK}.txt" fi unset RUBY_GC_STATS PERF_OPTIONS="$ITER $COMMON $OPT1" RAILS_BENCHMARK_FILE=$FILE1 $BINDIR/perf_loop $PERF_OPTIONS || exit 1 ruby $BINDIR/perf_times $FILE1 echo;echo PERF_OPTIONS="$ITER $COMMON $OPT2" RAILS_BENCHMARK_FILE=$FILE2 $BINDIR/perf_loop $PERF_OPTIONS || exit 1 ruby $BINDIR/perf_times $FILE2 echo;echo ruby $BINDIR/perf_comp -narrow -skip_urls $FILE1 $FILE2