diff --git a/results/analyze b/results/analyze index 2a2dab9..b87f3bc 100755 --- a/results/analyze +++ b/results/analyze @@ -263,7 +263,7 @@ sub main { while ($line = ) { chomp($line); - if ($line =~ /^\s*#/) { + if ($line =~ /^(\s*#|SKIPPING)/) { next; } diff --git a/run.sh b/run.sh index e0a01cb..cbdfbe3 100755 --- a/run.sh +++ b/run.sh @@ -8,6 +8,19 @@ MIN_NLINES="${MIN_NLINES:=10}" # it's a fatal error if we get less than this num SRC_FILTER="${SRC_FILTER:=x}" # if provided, execute only the given test DRY_RUN="${DRY_RUN:=0}" # if enabled, do only the compilation phase +_OS="$(uname)" +if [ "$_OS" == "Linux" ]; then + TIME_CMD="$(which time)" +elif [ "$_OS" == "Darwin" ]; then + TIME_CMD="$(which gtime)" +fi + +if [ "$TIME_CMD" == "" ]; then + echo "Unable to find the GNU time command." >&2 + echo "If you are on a non-Linux OS such as Mac OS or *BSD you will need to install it separately." >&2 + exit -1 +fi + export RUN_TIME echo "# Run time limited to $RUN_TIME wall-clock seconds" @@ -48,11 +61,11 @@ function run_benchmark() { echo "# ... run $n" - TIMES_FILE="$(mktemp --suffix .langs_perf)" || exit 1 + TIMES_FILE="$(mktemp)" || exit 1 OUT="$( { - /usr/bin/time -o "$TIMES_FILE" --format \ + "$TIME_CMD" -o "$TIMES_FILE" --format \ 'real_TIME:%esec user_CPU:%Usec sys_CPU:%Ssec max_RSS:%Mkb swaps:%W ctx_sw:%c+%w' \ $RUN_CMD } 2>&1