diff options
author | Paul Phillips <paulp@improving.org> | 2011-01-04 01:17:32 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-01-04 01:17:32 +0000 |
commit | 234ee6d56bdbf4234f8f6f0f2ebc0560f25701ee (patch) | |
tree | 336171608f51da71ef600db63b27b265c871b373 /tools | |
parent | 266a2ca1c4ed1c655989c2435a9e83650b06f79a (diff) | |
download | scala-234ee6d56bdbf4234f8f6f0f2ebc0560f25701ee.tar.gz scala-234ee6d56bdbf4234f8f6f0f2ebc0560f25701ee.tar.bz2 scala-234ee6d56bdbf4234f8f6f0f2ebc0560f25701ee.zip |
Some profiler changes.
after each phase, so all the allocations are partitionable by phase
in the profiler. I also changed the name of -Yprofile-resident to
-Yprofile-memory and had it snapshot after the run instead of between
them, so it is usable for regular scalac usage as well.
Added tools/profile_scalac which can be used as a drop-in replacement
which handles some tedious setup. Review by dragos.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/locker_scala | 8 | ||||
-rwxr-xr-x | tools/locker_scalac | 8 | ||||
-rwxr-xr-x | tools/lockercp | 10 | ||||
-rwxr-xr-x | tools/profile_scala | 17 | ||||
-rwxr-xr-x | tools/profile_scalac | 25 | ||||
-rwxr-xr-x | tools/quickcp | 6 |
6 files changed, 72 insertions, 2 deletions
diff --git a/tools/locker_scala b/tools/locker_scala new file mode 100755 index 0000000000..4434c94bf3 --- /dev/null +++ b/tools/locker_scala @@ -0,0 +1,8 @@ +#!/bin/bash +# + +THISDIR=`dirname $0` +CP=`$THISDIR/lockercp` +CLASS="scala.tools.nsc.MainGenericRunner" + +java -classpath "$CP" $CLASS -usejavacp "$@" diff --git a/tools/locker_scalac b/tools/locker_scalac new file mode 100755 index 0000000000..2ad153e929 --- /dev/null +++ b/tools/locker_scalac @@ -0,0 +1,8 @@ +#!/bin/bash +# + +THISDIR=`dirname $0` +CP=`$THISDIR/lockercp` +CLASS="scala.tools.nsc.Main" + +java -classpath "$CP" $CLASS -usejavacp "$@" diff --git a/tools/lockercp b/tools/lockercp new file mode 100755 index 0000000000..3e8799596f --- /dev/null +++ b/tools/lockercp @@ -0,0 +1,10 @@ +#!/bin/sh +# + +THISDIR=`dirname $0` +ABS=${THISDIR}/abspath +LIBDIR=`$ABS $THISDIR/../lib` + +cp=`${THISDIR}/cpof ${THISDIR}/../build/locker/classes` + +echo ${cp}:$LIBDIR/fjbg.jar:$LIBDIR/msil.jar:$LIBDIR/forkjoin.jar:$LIBDIR/jline.jar:$LIBDIR/extra/'*' diff --git a/tools/profile_scala b/tools/profile_scala new file mode 100755 index 0000000000..037fc327bd --- /dev/null +++ b/tools/profile_scala @@ -0,0 +1,17 @@ +#!/bin/bash +# + +# Uses quick by default +CLASSPATH=`tools/quickcp` + +AGENT=${YOURKIT_PATH:-/Applications/YourKit.app/bin/mac/libyjpagent.jnilib} + +java $JAVA_OPTS \ + -classpath $CLASSPATH \ + -agentpath:$AGENT=$YNP_STARTUP_OPTIONS \ + scala.tools.nsc.MainGenericRunner -usejavacp \ + -i <(cat <<EOF +lazy val profiler = new scala.tools.util.YourkitProfiling { } +import profiler._ +EOF +) "$@" diff --git a/tools/profile_scalac b/tools/profile_scalac new file mode 100755 index 0000000000..f29b5b6fa4 --- /dev/null +++ b/tools/profile_scalac @@ -0,0 +1,25 @@ +#!/bin/bash +# +# To influence behavior, you can set: +# +# YOURKIT_PATH +# YOURKIT_PROFILE_PHASES +# YNP_STARTUP_OPTIONS +# + +# Start cpu sampling immediately +DEFAULT_OPTS="sampling,onexit=snapshot" + +# Uses quick by default +CLASSPATH=`tools/quickcp` + +AGENT=${YOURKIT_PATH:-/Applications/YourKit.app/bin/mac/libyjpagent.jnilib} +OPTS=${YNP_STARTUP_OPTIONS:-$DEFAULT_OPTS} +PHASES=${YOURKIT_PROFILE_PHASES:-all} + +java $JAVA_OPTS \ + -classpath $CLASSPATH \ + -agentpath:$AGENT=$OPTS \ + scala.tools.nsc.Main -usejavacp \ + -Yprofile:$PHASES \ + "$@" diff --git a/tools/quickcp b/tools/quickcp index 0bfcad1941..dd5251d30f 100755 --- a/tools/quickcp +++ b/tools/quickcp @@ -2,7 +2,9 @@ # THISDIR=`dirname $0` +ABS=${THISDIR}/abspath +LIBDIR=`$ABS $THISDIR/../lib` + cp=`${THISDIR}/cpof ${THISDIR}/../build/quick/classes` -fjbg=`${THISDIR}/abspath ${THISDIR}/../lib/fjbg.jar` -echo ${cp}:${fjbg} +echo ${cp}:$LIBDIR/fjbg.jar:$LIBDIR/msil.jar:$LIBDIR/forkjoin.jar:$LIBDIR/jline.jar:$LIBDIR/extra/'*' |