Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(980)

Unified Diff: compiler/scripts/compiler_series_test.sh

Issue 9950019: Renamed the 'dartc' launch script to 'dart-analysis' and adds it to dart-sdk (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Short circuit the copying of dart_analyzer completely from the build Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: compiler/scripts/compiler_series_test.sh
diff --git a/compiler/scripts/compiler_series_test.sh b/compiler/scripts/compiler_series_test.sh
deleted file mode 100755
index ede9e2c0c71efcdb9599b2b13625ab515e903d9c..0000000000000000000000000000000000000000
--- a/compiler/scripts/compiler_series_test.sh
+++ /dev/null
@@ -1,226 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-# for details. All rights reserved. Use of this source code is governed by a
-# BSD-style license that can be found in the LICENSE file.
-
-# Compares a series of compiler reivsions against a target application for
-# statistic collection. Outputs a gnuplot consumable table.
-
-APP=""
-REV=""
-ONE_DELTA=""
-BASE_PATH=$(pwd)
-SCRIPT_PATH=$(dirname $0)
-SCRIPT_PATH=$(cd $SCRIPT_PATH; pwd)
-RUNS=10
-COUNT=50
-LOW_REV=""
-
-function printHelp() {
- exitValue=${1:1}
- echo "Compare performance of multiple compiler revisions against a given target application."
- echo "Creates a cache of pre-built compiler revisions in compiler/revs/ for later comparison."
- echo "The target output of this script is a gnuplot consumable list of stats (for now), located"
- echo "in tmp_performance_comparisons/compiler_plots.dat."
- echo ""
- echo " Usage:"
- echo " -a=, --app= The dart app file to test (required)."
- echo " -d=, --one-delta= The filename, relative to app, to touch in order to trigger a one-delta compile."
- echo " -r=, --revision= The compiler revision to start comparing against (default to current repository revision)."
- echo " -c=, --count= The number of compiler revisions test against. Default 50."
- echo " -l=, --low-rev= Alternative to --count; set the lowest revision to run to"
- echo " -n=, --runs= How many times each compiler is run against the target application."
- echo " -h, --help What you see is what you get."
- exit $exitValue
-}
-
-function failTest() {
- if [ ! $1 -eq 0 ]; then
- echo $2
- exit $1
- fi
-}
-
-RESPONSE[0]="Performance: Better"
-RESPONSE[1]="Performance: No Change"
-RESPONSE[2]="Performance: Worse"
-
-function calcStat() {
- # Assume we're always making improvments, S2 will be presented as a larger value
- LINEMATCH_DEV="s/${1}: .*stdev: \([0-9]*\).*/\1/p"
- LINEMATCH_VALUE="s/${1}: average: \([0-9]*\).*/\1/p"
- S1_DEV=$(sed -n -e "$LINEMATCH_DEV" $STAT1)
- if [ "" != "$S1_DEV" ]; then
- S1_VALUE=$(sed -n -e "$LINEMATCH_VALUE" $STAT1)
- echo -ne "\t"$S1_VALUE"\t"$S1_DEV >> $PLOTS
- else
- echo -ne "\t-1\t-1" >> $PLOTS
- fi
- return 0
-}
-
-function calcStats() {
- echo -n $1 >> $PLOTS
- calcStat full-compile
- calcStat zero-delta-compile
- calcStat one-delta-compile
- echo "" >> $PLOTS
-}
-
-if [ $# -eq 0 ]; then
- printHelp;
-fi
-
-for i in $*
-do
- case $i in
- --one-delta=*|-d=*)
- ONE_DELTA=${i#*=}
- COMPARE_OPTIONS+="--one-delta=$ONE_DELTA ";;
- --app=*|-a=*)
- APP=${i#*=};;
- --revision=*|-r=*)
- REV=${i#*=};;
- --count=*|-c=*)
- COUNT=${i#*=}
- LOW_REV="";;
- --runs=*|-n=*)
- RUNS=${i#*=};;
- --low-rev=*|-l=*)
- LOW_REV=${i#*=}
- COUNT=0;;
- --help|-h)
- printHelp 0;;
- *)
- echo "Parameter $i not recognized"
- printHelp 1;;
- esac
-done
-
-COMPARE_OPTIONS+="-r=$RUNS "
-
-if ((RUNS > 0)); then
- if [ "" = "$APP" ] || [ ! -r $APP ]; then
- echo "Required --app" " got: $APP"
- printHelp 1
- fi
- APP=$( cd "$( dirname "$APP" )" && pwd )/$( basename "$APP")
- COMPARE_OPTIONS+="--app=$APP "
-else
- echo "Building up compiler cache"
- APP="Compiler cache"
-fi
-
-ROOT_OF_REPO=$BASE_PATH
-TEST_DIR=$BASE_PATH
-while true; do
- ls -d .gclient > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- echo "Root found: $ROOT_OF_REPO"
- break;
- fi
- if [ "$TEST_DIR" = "/" ]; then
- failTest 1 "Hit the root directory; no .git/ found?!"
- fi
- ROOT_OF_REPO=$TEST_DIR
- cd ..
- TEST_DIR=$(pwd)
-done
-
-# Make a temporary directory in the current path and checkout the revision
-TMP_DIR=$ROOT_OF_REPO/compiler/tmp_performance_comparisons
-mkdir -p $TMP_DIR
-
-LOG_FILE=$TMP_DIR/compiler_compare.log
-PLOTS=$TMP_DIR/compiler_plots.dat
-STAT1=$TMP_DIR/compiler_metrics.txt
-COMPARE_OPTIONS+="--output=$TMP_DIR "
-
-# zero out files
-echo "" > $LOG_FILE
-
-# switch to tmp for remainder of building
-cd $TMP_DIR
-gclient config https://dart.googlecode.com/svn/branches/bleeding_edge/deps/compiler.deps >> $LOG_FILE 2>&1
-failTest $? "Error calling gclient config"
-
-if [ "" == "$REV" ]; then
- echo "No revision specified; checking out head for test"
- REV=`svn info https://dart.googlecode.com/svn/branches/bleeding_edge/deps/compiler.deps | sed -n -e 's/Revision: \([0-9]*\)/\1/p'`
- echo "Head revision = $REV"
-fi
-
-function failStats() {
- echo -e "$1\t-1\t0\t-1\t0\t-1\t0" >> $PLOTS
- return 0;
-}
-
-function compileRevision() {
- REVISION=$1
- PREBUILT_DIR=$ROOT_OF_REPO/compiler/revs/$REVISION/prebuilt
- PREBUILT_BIN=$PREBUILT_DIR/compiler/bin/dartc
- if [ ! -x $PREBUILT_BIN ]; then
- echo "No prebuilt, building and caching"
- echo "Checking out clean version of $REVISION; will take some time. Look at $LOG_FILE for progress"
- date
- cd $TMP_DIR
- gclient sync -t --revision=$REVISION >> $LOG_FILE 2>&1
- failTest $? "Error calling gclient sync"
- echo "Run hooks"
- gclient runhooks >> $LOG_FILE 2>&1
-
- echo "Compiling clean version of dartc; may take some time"
- date
- cd compiler
- ../tools/build.py --mode release >> $LOG_FILE 2>&1
- if [ ! $? -eq 0 ]; then
- echo "error compiling"
- failStats $REVISION
- return 1;
- fi
-
- # Give the metrics system a backwards compatible way of getting to the
- # artifacts that it needs.
- cd ..
- mkdir -p $ROOT_OF_REPO/compiler/revs/$REVISION/prebuilt
- cd $ROOT_OF_REPO/compiler/revs/$REVISION/prebuilt
- COMPILER_OUTDIR=$TMP_DIR/compiler/out/Release_ia32
- cp -r $COMPILER_OUTDIR/compiler ./compiler
- else
- echo "Cached prebuilt of $REVISION!"
- fi
-
- # Short circuit if we're just filling in the build cache
- if [ $RUNS -eq 0 ]; then
- echo "run in compile only mode, no stats generating"
- return 0;
- fi
-
- # Do the second test
- echo "Running test with dartc $REVISION!"
- date
- echo $SCRIPT_PATH/compiler_metrics.sh --stats-prefix=$REVISION --dartc=$PREBUILT_DIR/compiler/bin/dartc $COMPARE_OPTIONS >> $LOG_FILE 2>&1
- $SCRIPT_PATH/compiler_metrics.sh --stats-prefix=$REVISION --dartc=$PREBUILT_DIR/compiler/bin/dartc $COMPARE_OPTIONS > $STAT1
- if [ ! $? -eq 0 ]; then
- echo "error sampling"
- failStats $REVISION
- return 2;
- fi
-
- # Output the reivision to the PLOTS file; newline added after stats
- calcStats $REVISION
-}
-
-echo -e "#Rev\tFull-ms\tdev\tZeroD\tdev\tOneD\tdev" > $PLOTS
-if [ "$LOW_REV" ]; then
- COUNT=$(( REV - LOW_REV + 1 ))
-else
- LOW_REV=$(( REV - COUNT + 1 ))
-fi
-for (( i = REV ; i >= LOW_REV ; i-- ))
-do
- echo "["$( basename "$APP")": "$((REV - i + 1))"/"$COUNT", rev:$i]"
- compileRevision $i
-done
-

Powered by Google App Engine
This is Rietveld 408576698