Files
asmhatreandClaude Sonnet 5.5 df13a904d7 Add jdk28-zgc: ZGC startup and warmup baseline on JDK 25/27/28-ea, and a probe for JEP 545/546
Spring Boot 4.1.1 harness measuring first-response time versus initial heap size and a
20,000-request warmup. Shows -XX:+ZAdaptiveHeapSizing is not yet in any build.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WzVQ6zFh9cuLPj9RSbRH8U
2026-10-12 17:13:14 +00:00

46 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# Regenerates every file in output/. Set J25, J27, J28 to the three JDK home directories.
# Timing results drift between runs and machines; treat them as indicative, not exact.
set -u
HERE="$(cd "$(dirname "$0")" && pwd)"
OUT="$HERE/../output"; mkdir -p "$OUT"
: "${J25:?}" "${J27:?}" "${J28:?}"
export JDK_CLIENT="$J25"
RUNS=${RUNS:-5}
# 01 - what does each JDK say about the ZGC flags the two JEPs talk about?
{
for p in "25|$J25" "27|$J27" "28-ea|$J28"; do
v=${p%%|*}; h=${p#*|}
echo "== JDK $v"
"$h/bin/java" -version 2>&1 | grep -v Picked | sed -n 1p
"$h/bin/java" -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+PrintFlagsFinal -version 2>&1 \
| grep -E ' (InitialHeapSize|MaxHeapSize|SoftMaxHeapSize|ZUncommit|ZUncommitDelay) ' | sed 's/ \{2,\}/ /g'
echo "-- probing -XX:+ZAdaptiveHeapSizing"
"$h/bin/java" -XX:+UseZGC -XX:+ZAdaptiveHeapSizing -version 2>&1 | grep -v Picked | sed -n 1p
echo
done
} > "$OUT/01-flag-probe.txt"
# 02 - startup versus initial heap size
{
for p in "jdk25|$J25" "jdk27|$J27" "jdk28ea|$J28"; do
l=${p%%|*}; h=${p#*|}
"$HERE/startup.sh" "$h" "$l zgc default" "$RUNS" -XX:+UseZGC
"$HERE/startup.sh" "$h" "$l zgc Xms64m" "$RUNS" -XX:+UseZGC -Xms64m
"$HERE/startup.sh" "$h" "$l zgc Xms1g" "$RUNS" -XX:+UseZGC -Xms1g
"$HERE/startup.sh" "$h" "$l zgc Xms3g" "$RUNS" -XX:+UseZGC -Xms3g
"$HERE/startup.sh" "$h" "$l zgc Xms3g pretouch" "$RUNS" -XX:+UseZGC -Xms3g -XX:+AlwaysPreTouch
done
} > "$OUT/02-startup-vs-xms.txt" 2>&1
# 03 - warmup: how long do the first 20,000 requests take?
{
for p in "jdk25|$J25" "jdk28ea|$J28"; do
l=${p%%|*}; h=${p#*|}
"$HERE/warmup.sh" "$h" "$l zgc default" -XX:+UseZGC
"$HERE/warmup.sh" "$h" "$l zgc Xms3g" -XX:+UseZGC -Xms3g
"$HERE/warmup.sh" "$h" "$l zgc Xms64m" -XX:+UseZGC -Xms64m
done
} > "$OUT/03-warmup.txt" 2>&1