#!/usr/bin/env bash # Regenerates output/. Set J25 and J27. REPS defaults to 3. Configs are interleaved per repetition # so slow drift on the machine hits every configuration equally. Timings are indicative only. set -u HERE="$(cd "$(dirname "$0")" && pwd)" OUT="$HERE/../output"; mkdir -p "$OUT" : "${J25:?}" "${J27:?}" export JDK_CLIENT="$J25" REPS=${REPS:-3} { for p in "25|$J25" "27|$J27"; do v=${p%%|*}; h=${p#*|} echo "== JDK $v" "$h/bin/java" -version 2>&1 | grep -v Picked | sed -n 1p "$h/bin/java" -XX:+PrintFlagsFinal -version 2>&1 | grep -E ' (UseCompactObjectHeaders|UseG1GC|UseSerialGC|UseZGC|MaxHeapSize) ' | sed 's/ \{2,\}/ /g' echo done } > "$OUT/01-defaults.txt" : > "$OUT/02-runs.txt" for r in $(seq 1 "$REPS"); do "$HERE/run-one.sh" "$J25" "jdk25 defaults" >> "$OUT/02-runs.txt" 2>&1 "$HERE/run-one.sh" "$J25" "jdk25 +CompactObjectHeaders" -XX:+UseCompactObjectHeaders >> "$OUT/02-runs.txt" 2>&1 "$HERE/run-one.sh" "$J27" "jdk27 defaults" >> "$OUT/02-runs.txt" 2>&1 "$HERE/run-one.sh" "$J27" "jdk27 -CompactObjectHeaders" -XX:-UseCompactObjectHeaders >> "$OUT/02-runs.txt" 2>&1 done "$HERE/summarize.sh" "$OUT/02-runs.txt" > "$OUT/03-summary.txt" # 04 - resident data set after a forced full GC (this is where compact headers show up) { for r in 1 2 3; do "$HERE/live-set.sh" "$J25" "jdk25 defaults" "$HERE/live-set.sh" "$J25" "jdk25 +CompactObjectHeaders" -XX:+UseCompactObjectHeaders "$HERE/live-set.sh" "$J27" "jdk27 defaults" "$HERE/live-set.sh" "$J27" "jdk27 -CompactObjectHeaders" -XX:-UseCompactObjectHeaders done } > "$OUT/04-live-set.txt" 2>&1