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
This commit is contained in:
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user