summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-01-04 01:17:32 +0000
committerPaul Phillips <paulp@improving.org>2011-01-04 01:17:32 +0000
commit234ee6d56bdbf4234f8f6f0f2ebc0560f25701ee (patch)
tree336171608f51da71ef600db63b27b265c871b373 /tools
parent266a2ca1c4ed1c655989c2435a9e83650b06f79a (diff)
downloadscala-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-xtools/locker_scala8
-rwxr-xr-xtools/locker_scalac8
-rwxr-xr-xtools/lockercp10
-rwxr-xr-xtools/profile_scala17
-rwxr-xr-xtools/profile_scalac25
-rwxr-xr-xtools/quickcp6
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/'*'