1 #!/bin/bash
   2 
   3 JDK=$1
   4 OPTIONS=${@:2}
   5 
   6 JAVA_HOME=${JDK}/jdk mvn clean package || exit 1
   7 
   8 iter=20
   9 forks=2
  10 file=jmh.out
  11 
  12 params=(-p stackDepth=5 -p paramCount=3)
  13 
  14 run_benchmark() {
  15         local benchmark=$1
  16         local perflevels=${@:2}
  17 
  18         local last=0
  19 
  20         for perf in ${perflevels[@]}; do
  21                 echo
  22                 echo "======================================================"
  23                 echo "benchmark=$benchmark OPTIONS=$OPTIONS perf=$perf "
  24                 echo "------------------------------------------------------"
  25                 echo
  26 
  27                 $JDK/jdk/bin/java --add-opens java.base/java.io=ALL-UNNAMED -XX:+UnlockDiagnosticVMOptions $OPTIONS -XX:ContPerfTest=$perf -jar target/benchmarks.jar $benchmark -foe true -f $forks -i $iter -v SILENT -rf text -rff $file ${params[@]} && cat $file
  28                 
  29                 res=$(cat $file| tail -1 | awk '{ print $6 }')
  30                 echo
  31                 delta=$(echo "$res - $last" | bc)
  32                 last=$res
  33                 echo "Delta: $delta"
  34         done
  35         rm $file
  36         echo
  37         echo
  38 }
  39 
  40 run_benchmark justYield    5 10 15 20 25 30
  41 run_benchmark justContinue 105 110 112 115 120 125 130