Add shenandoah-jdk28: generational vs SATB Shenandoah, G1 and ZGC on a Spring Boot service (JEP 535 status probe included)

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01HmvoHH3ZnCEaPNXRpDxDZe
This commit is contained in:
Claude
2026-10-24 10:53:17 +00:00
parent df13a904d7
commit b25bd65d4b
14 changed files with 460 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
# Regenerates everything in output/.
# export J25=/path/to/temurin-25 J28=/path/to/temurin-28-ea (both must include Shenandoah: use Temurin, not the jdk.java.net builds)
# mvn -B -DskipTests package
# scripts/run-all.sh # 4 configurations x REPS runs, interleaved, about 2.5 minutes per run
#
# Env: REPS (default 3), RATE / WARMUP / MEASURE (see bench-one.sh)
set -eu
cd "$(dirname "$0")/.."
: "${J25:?set J25}" "${J28:?set J28}"
REPS=${REPS:-3}
./scripts/probe.sh > output/01-gc-mode-probe.txt 2>&1
: > output/02-runs.txt
for rep in $(seq 1 "$REPS"); do
# interleaved so slow drift on the machine hits every configuration alike
./scripts/bench-one.sh "$J28" g1 "$rep" -XX:+UseG1GC | tee -a output/02-runs.txt
./scripts/bench-one.sh "$J28" zgc "$rep" -XX:+UseZGC | tee -a output/02-runs.txt
./scripts/bench-one.sh "$J28" shenandoah-satb "$rep" -XX:+UseShenandoahGC -XX:ShenandoahGCMode=satb | tee -a output/02-runs.txt
./scripts/bench-one.sh "$J28" shenandoah-generational "$rep" -XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational | tee -a output/02-runs.txt
done
python3 scripts/summarize.py output/02-runs.txt | tee output/03-summary.txt