Live heap, throughput, p99 and startup across four configurations, including opt-in and opt-out of compact object headers. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01WzVQ6zFh9cuLPj9RSbRH8U
36 lines
1.6 KiB
Bash
Executable File
36 lines
1.6 KiB
Bash
Executable File
#!/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
|