#!/bin/sh # set -x if [ $# -lt 2 ]; then echo "usage: perf_run_gc iterations options [conf-name]" echo "example: perf_run 100 \"-bm=default -log\" pdata" exit 1 fi BINDIR=`dirname $0` test -z "$RAILS_PERF_DATA" && RAILS_PERF_DATA=$HOME ITER="$1" OPT="$2" BENCHMARK="" WARMUP="-warmup" use_patched_gc="no" for opt in $OPT; do case $opt in -bm=*) BENCHMARK=${opt#-bm=};; -warmup) WARMUP="";; -patched_gc) use_patched_gc="yes";; esac done DATE=`date +%m-%d` if [ $# == 3 ]; then BENCHMARK_FILE="$RAILS_PERF_DATA/${DATE}.${BENCHMARK}.$3.gc.txt" else BENCHMARK_FILE="$RAILS_PERF_DATA/perf_run.${BENCHMARK}.gc.txt" fi PERF_OPTIONS="$ITER $WARMUP $OPT" if [ "${use_patched_gc}" = "no" ]; then unset RUBY_HEAP_MIN_SLOTS RUBY_GC_MALLOC_LIMIT RUBY_HEAP_FREE_MIN fi unset RUBY_GC_STATS RUBY_GC_DATA_FILE (RUBY_GC_STATS=1 RUBY_GC_DATA_FILE=$BENCHMARK_FILE ruby $BINDIR/run_urls $PERF_OPTIONS >/dev/null) &&\ ruby $BINDIR/perf_times_gc $BENCHMARK_FILE