1 #!/bin/bash
2
3 # Run with e.g. ./run-helloworld.sh
4
5 set -euo pipefail
6
7 # Look around for release JDK image
8 J_LBE=
9 if [ -d build/linux-x86_64-server-release/images/jdk/ ]; then
10 J_LBE=build/linux-x86_64-server-release/images/jdk/bin/java
11 elif [ -d build/linux-aarch64-server-release/images/jdk/ ]; then
12 J_LBE=build/linux-aarch64-server-release/images/jdk/bin/java
13 else
14 echo "Cannot find JDK"
15 exit 1
16 fi
17
18 J_ML=
19 if [ -d jdk-mainline/ ]; then
20 J_ML=jdk-mainline/bin/java
21 fi
22
23 OPTS="-XX:+UseShenandoahGC -Xmx8g -Xms8g -XX:+AlwaysPreTouch -XX:+UseTransparentHugePages -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:ShenandoahGCMode=passive -XX:+UnlockExperimentalVMOptions"
24
25 OPTS_ALL="$OPTS -XX:+ShenandoahLoadRefBarrier -XX:+ShenandoahSATBBarrier -XX:+ShenandoahCASBarrier -XX:+ShenandoahCloneBarrier"
26
27 echo
28 echo ------
29 echo Hello World footprint:
30
31 cat > Hello.java <<EOF
32 public class Hello {
33 public static void main(String... args) {
34 System.out.println("Hello World");
35 }
36 }
37 EOF
38
39 run_with() {
40 P=$*
41 for I in `seq 1 3`; do
42 echo -n " run $I: "
43 $P -Xcomp -XX:+CITime Hello.java 2>&1 | grep "Tier4"
44 done
45 }
46
47 if [ "x" != "x$J_ML" ]; then
48 echo
49 echo "Mainline: No barriers"
50 # run_with $J_ML $OPTS
51
52 echo
53 echo "Mainline: All barriers"
54 # run_with $J_ML $OPTS_ALL
55 fi
56
57 echo
58 echo "LBE: No barriers"
59 run_with $J_LBE $OPTS
60
61 echo
62 echo "LBE: All barriers"
63 run_with $J_LBE $OPTS_ALL
64
65 exit
66
67 echo
68 echo "LBE: All barriers, nop GC state checks"
69 run_with $J_LBE $OPTS_ALL -XX:+ShenandoahNopGCState
70
71 echo
72 echo "LBE: All barriers, hollow barrier stubs"
73 run_with $J_LBE $OPTS_ALL -XX:+ShenandoahHollowBarrierStubs
74
75 echo
76 echo "LBE: All barriers, hollow barrier stubs and nop GC state checks"
77 run_with $J_LBE $OPTS_ALL -XX:+ShenandoahHollowBarrierStubs -XX:+ShenandoahNopGCState
78
79 echo
80 echo "LBE: All barriers, skip barrier stubs altogether"
81 run_with $J_LBE $OPTS_ALL -XX:+ShenandoahSkipBarrierStubs
82