1 # Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
   2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   3 #
   4 # This code is free software; you can redistribute it and/or modify it
   5 # under the terms of the GNU General Public License version 2 only, as
   6 # published by the Free Software Foundation.
   7 #
   8 # This code is distributed in the hope that it will be useful, but WITHOUT
   9 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  11 # version 2 for more details (a copy is included in the LICENSE file that
  12 # accompanied this code).
  13 #
  14 # You should have received a copy of the GNU General Public License version
  15 # 2 along with this work; if not, write to the Free Software Foundation,
  16 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  17 #
  18 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  19 # or visit www.oracle.com if you need additional information or have any
  20 # questions.
  21 
  22 pushd `dirname $0` > /dev/null
  23 DIR=`pwd`
  24 popd > /dev/null
  25 
  26 AOT_OPTS="-XX:+UseAOT"
  27 
  28 $JAVA_HOME/bin/java $AOT_OPTS -XX:+PrintAOT -version | grep "aot library" || exit 1
  29 
  30 # Dump CDS archive.
  31 $JAVA_HOME/bin/java $AOT_OPTS -Xshare:dump || exit 1
  32 
  33 FILE="HelloWorld"
  34 
  35 APP="com.sun.tools.javac.Main"
  36 
  37 JAVA_OPTS="-XX:-UseCompressedOops"
  38 
  39 rm -f $FILE.class
  40 
  41 $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP -verbose $FILE.java || exit 1
  42 $JAVA_HOME/bin/java $AOT_OPTS $FILE || exit 1
  43 
  44 JAVA_OPTS="-XX:+UseCompressedOops"
  45 
  46 rm -f $FILE.class
  47 
  48 $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP -verbose $FILE.java || exit 1
  49 $JAVA_HOME/bin/java $AOT_OPTS $FILE || exit 1
  50 
  51 rm -f $FILE.class
  52 
  53 TIMEFORMAT="%3R"
  54 N=5
  55 
  56 #echo "-Xint:"
  57 #for i in `seq 1 10`; do
  58 #    time $JAVA_HOME/bin/java -Xint $JAVA_OPTS $APP $FILE.java
  59 #    if [ $? -ne 0 ]; then
  60 #        exit 1
  61 #    fi
  62 #    rm -f $FILE.class
  63 #done
  64 
  65 echo "Tiered C1:"
  66 for i in `seq 1 $N`; do
  67     time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT -XX:TieredStopAtLevel=1 $APP $FILE.java
  68     if [ $? -ne 0 ]; then
  69         exit 1
  70     fi
  71     rm -f $FILE.class
  72 done
  73 
  74 echo "Tiered C1/C2:"
  75 for i in `seq 1 $N`; do
  76     time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT $APP $FILE.java
  77     if [ $? -ne 0 ]; then
  78         exit 1
  79     fi
  80     rm -f $FILE.class
  81 done
  82 
  83 echo "Tiered C1/C2 -Xshare:on:"
  84 for i in `seq 1 $N`; do
  85     time $JAVA_HOME/bin/java $JAVA_OPTS -XX:-UseAOT -Xshare:on $APP $FILE.java
  86     if [ $? -ne 0 ]; then
  87         exit 1
  88     fi
  89     rm -f $FILE.class
  90 done
  91 
  92 echo "Tiered AOT:"
  93 for i in `seq 1 $N`; do
  94     time $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS $APP $FILE.java
  95     if [ $? -ne 0 ]; then
  96         exit 1
  97     fi
  98     rm -f $FILE.class
  99 done
 100 
 101 echo "Tiered AOT -Xshare:on:"
 102 for i in `seq 1 $N`; do
 103     time $JAVA_HOME/bin/java $JAVA_OPTS $AOT_OPTS -Xshare:on $APP $FILE.java
 104     if [ $? -ne 0 ]; then
 105         exit 1
 106     fi
 107     rm -f $FILE.class
 108 done
 109 
 110 NAME="jvmci"
 111 DIR="$DIR/../../../../src/jdk.internal.vm.ci"
 112 FILES=`find $DIR -type f -name '*.java'`
 113 COUNT=`find $DIR -type f -name '*.java' | wc -l`
 114 
 115 rm -rf tmp
 116 
 117 echo "Tiered C1 (compiling $NAME: $COUNT classes):"
 118 for i in `seq 1 $N`; do
 119     mkdir tmp
 120     time $JAVA_HOME/bin/javac -J-XX:-UseAOT -J-XX:TieredStopAtLevel=1 -XDignore.symbol.file -d tmp $FILES
 121     if [ $? -ne 0 ]; then
 122         exit 1
 123     fi
 124     rm -rf tmp
 125 done
 126 
 127 echo "Tiered C1/C2 (compiling $NAME: $COUNT classes):"
 128 for i in `seq 1 $N`; do
 129     mkdir tmp
 130     time $JAVA_HOME/bin/javac -J-XX:-UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
 131     if [ $? -ne 0 ]; then
 132         exit 1
 133     fi
 134     rm -rf tmp
 135 done
 136 
 137 echo "Tiered AOT (compiling $NAME: $COUNT classes):"
 138 for i in `seq 1 $N`; do
 139     mkdir tmp
 140     time $JAVA_HOME/bin/javac -J-XX:+UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
 141     if [ $? -ne 0 ]; then
 142         exit 1
 143     fi
 144     rm -rf tmp
 145 done
 146 
 147 echo "Tiered AOT -Xshare:on (compiling $NAME: $COUNT classes):"
 148 for i in `seq 1 $N`; do
 149     mkdir tmp
 150     time $JAVA_HOME/bin/javac -J-Xshare:on -J-XX:+UseAOT -XDignore.symbol.file -cp /java/devtools/share/junit/latest/junit.jar -d tmp $FILES
 151     if [ $? -ne 0 ]; then
 152         exit 1
 153     fi
 154     rm -rf tmp
 155 done
 156 
 157